// @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 &parameters, 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();
}
Beispiel #2
0
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() );
    }
}