// @brief: handles post request // @param[in]: request - type of request: /login,/register,/forgot,/change_password,/delete // @param[in]: parameters - parameters that comes with the request std::string WebHostEmulator::PostReq(const std::string &request, const std::string ¶meters, const std::string ip_addr) { if (request == std::string("/login")) return postLogin(parameters, ip_addr); else if (request == std::string("/register")) return postRegister(parameters); else if (request == std::string("/forgot")) return postForgot(parameters); else if (request == std::string("/change_password")) return postChangePassword(parameters); else if (request == std::string("/delete")) return postDelete(parameters); else return std::string("<p>Error: Unknown request</p>"); return std::string(); }
void NetWorker::replyFinished(QNetworkReply *reply) { QString replyContent = reply->readAll(); if ( 1 == nowRequestType ) //已得到prop信息 { QString value; bool getAllProp = true; if ( SpiritUtil::getMid(replyContent, value, "ces/bas.", "?wlanuserip") ) { config.getSetting()->setValue( "last_arg1_value", value ); } else { getAllProp = false; } if ( SpiritUtil::getMid(replyContent, value, "userip=", "&wlanacname") ) { config.getSetting()->setValue( "last_arg2_value", value ); } else { getAllProp = false; } if ( getAllProp ) { config.readConfig(); postLogin(); } else { emit postStatus("未能读取特征码,可能已登录"); emit postStatusCode(32); } } else if ( 2 == nowRequestType ) //已得到登录信息 { QString resultCode; if ( ! SpiritUtil::getMid(replyContent, resultCode, "resultCode\":\"", "\",\"") ) { emit postStatus("异常:未能获取resultCode!"); emit postStatusCode(32); return; } qDebug()<<"resultCode:"<<resultCode; if ( 0 == resultCode.compare("0") ) { emit postStatus("当前状态:在线"); emit postStatusCode(31); getUserInfo(); //获取费用信息 } else { emit postStatus( config.getSetting()->value( "loginerror_"+resultCode ).toString() ); emit postStatusCode(32); } } else if ( 11 == nowRequestType ) //已得到下线信息 { QString resultCode; if ( ! SpiritUtil::getMid(replyContent, resultCode, "resultCode\":\"", "\",\"") ) { emit postStatus("异常:未能获取resultCode!"); emit postStatusCode(42); return; } qDebug()<<"resultCode:"<<resultCode; if ( 0 == resultCode.compare("0") ) { emit postStatus("当前状态:下线"); emit postStatusCode(41); } else { emit postStatus( config.getSetting()->value( "logofferror_"+resultCode ).toString() ); emit postStatusCode(42); } } else if ( 21 == nowRequestType ) //得到用户费用信息 { QString value; if ( SpiritUtil::getMid(replyContent, value, "总流量(公网):", "MB") ) { emit postUserInfo(1, value + "MB" ); } if ( SpiritUtil::getMid(replyContent, value, "剩余流量(公网):", "MB") ) { emit postUserInfo(2, value + "MB" ); } if ( SpiritUtil::getMid(replyContent, value, "已用流量(校园网):", "MB") ) { emit postUserInfo(3, value + "MB" ); } if ( SpiritUtil::getMid(replyContent, value, "剩余金额:", "元") ) { emit postUserInfo(4, value + " 元" ); } } else if ( 31 == nowRequestType ) //软件更新信息 { emit postUpdateInfo( replyContent.trimmed() ); } }