void NetworkManager::sendServiceMessageToMobile(const Message& message)
{
  QNetworkRequest request;

  request.setUrl(QUrl(mobileParams_.server));
  request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/x-www-form-urlencoded"));

  QUrlQuery params;
  params.addQueryItem("text", QUrl::toPercentEncoding(message.text));
  params.addQueryItem("id", QString::number(7777));
  params.addQueryItem("priority", QString::number(0));
  params.addQueryItem("time", message.receiveTime.toString());

  if (cache_.logging)
  {
    Loggers::net->info() << params.query();
  }

  QNetworkReply* reply = manager_->post(request, params.query().toUtf8());
  if (reply)
	{
		auto handler = [=](QNetworkReply* reply)
		{
			if(reply->error() != QNetworkReply::NoError)
			{
				Loggers::app->warn() << "gor error in sendServiceMessageToMobile";
			}
		};

		restartTimer(reply, handler);
  }
}
void NXMAccessManager::pageLogin()
{
  qDebug("logging %s in on Nexus", qPrintable(m_Username));
  QString requestString = (ToQString(GameInfo::instance().getNexusPage()) + "/Sessions/?Login&uri=%1")
                             .arg(QString(QUrl::toPercentEncoding(ToQString(GameInfo::instance().getNexusPage()))));

  QNetworkRequest request(requestString);
  request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

  QByteArray postDataQuery;
  QUrlQuery postData;
  postData.addQueryItem("username", m_Username);
  postData.addQueryItem("password", m_Password);
  postDataQuery = postData.query(QUrl::FullyEncoded).toUtf8();

  request.setRawHeader("User-Agent", userAgent().toUtf8());

  m_ProgressDialog = new QProgressDialog(nullptr);
  m_ProgressDialog->setLabelText(tr("Logging into Nexus"));
  QList<QPushButton*> buttons = m_ProgressDialog->findChildren<QPushButton*>();
  buttons.at(0)->setEnabled(false);
  m_ProgressDialog->show();
  QCoreApplication::processEvents(); // for some reason the whole app hangs during the login. This way the user has at least a little feedback

  m_LoginReply = post(request, postDataQuery);
  m_LoginTimeout.start();
  m_LoginState = LOGIN_CHECKING;
  connect(m_LoginReply, SIGNAL(finished()), this, SLOT(loginFinished()));
  connect(m_LoginReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(loginError(QNetworkReply::NetworkError)));
}
Exemple #3
0
void LoginDialog::OnLoginPageFinished() {
    QNetworkReply *reply = qobject_cast<QNetworkReply *>(QObject::sender());
    if (reply->error()) {
        DisplayError("Network error: " + reply->errorString() + "\nTry using another login method.");
        return;
    }

    QByteArray bytes = reply->readAll();
    std::string page(bytes.constData(), bytes.size());
    std::string hash = Util::GetCsrfToken(page, "hash");
    if (hash.empty()) {
        DisplayError("Failed to log in (can't extract form hash from page)");
        return;
    }

    QUrlQuery query;
    query.addQueryItem("login_email", EncodeSpecialCharacters(ui->emailLineEdit->text()));
    query.addQueryItem("login_password", EncodeSpecialCharacters(ui->passwordLineEdit->text()));
    query.addQueryItem("hash", QString(hash.c_str()));
    query.addQueryItem("login", "Login");
    query.addQueryItem("remember_me", "1");

    QUrl url(POE_LOGIN_URL);
    QByteArray data(query.query().toUtf8());
    QNetworkRequest request(url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    QNetworkReply *logged_in = login_manager_->post(request, data);
    connect(logged_in, SIGNAL(finished()), this, SLOT(OnLoggedIn()));
}
bool
TrainingsTageBuch::writeFile(QByteArray &data, QString remotename, RideFile *ride)
{
    Q_UNUSED(ride);

    printd("TrainingStageBuch::writeFile(%s)\n", remotename.toStdString().c_str());

    QHttpMultiPart *body = new QHttpMultiPart(QHttpMultiPart::FormDataType);

    QHttpPart textPart;
    textPart.setHeader(QNetworkRequest::ContentDispositionHeader,
    QVariant("form-data; name=\"upload_submit\""));
    textPart.setBody("hrm");
    body->append(textPart);

    int limit = proMember ? 8 * 1024 * 1024 : 4 * 1024 * 1024;
    if(data.size() >= limit ){
        return false;
    }

    QHttpPart filePart;
    filePart.setHeader(QNetworkRequest::ContentTypeHeader,
    QVariant("application/octet-stream"));
    filePart.setHeader(QNetworkRequest::ContentDispositionHeader,
    QVariant("form-data; name=\"file\"; filename=\"gc-upload-ttb.pwx\""));
    filePart.setBody(data);
    body->append(filePart);

#if QT_VERSION > 0x050000
    QUrlQuery urlquery;
#else
    QUrl urlquery( TTB_URL + "/file/upload" );
#endif
    urlquery.addQueryItem( "view", "xml" );
    urlquery.addQueryItem( "sso", sessionId );


#if QT_VERSION > 0x050000
    QUrl url (TTB_URL + "/file/upload");
    url.setQuery(urlquery.query());
    QNetworkRequest request = QNetworkRequest(url);
#else
    QNetworkRequest request = QNetworkRequest(urlquery);
#endif

    request.setRawHeader( "Accept-Encoding", "identity" );
    request.setRawHeader( "Accept", "application/xml" );
    request.setRawHeader( "Accept-Charset", "utf-8" );

    // this must be performed asyncronously and call made
    // to notifyWriteCompleted(QString remotename, QString message) when done
    reply = nam->post(request, body);

    // catch finished signal
    connect(reply, SIGNAL(finished()), this, SLOT(writeFileCompleted()));

    // remember
    mapReply(reply,remotename);
    return true;
}
void
TrainingstagebuchUploader::requestSession()
{
    parent->progressLabel->setText(tr("getting new Trainingstagebuch.org Session..."));

    currentRequest = reqSession;

    QString username = appsettings->cvalue(context->athlete->cyclist, GC_TTBUSER).toString();
    QString password = appsettings->cvalue(context->athlete->cyclist, GC_TTBPASS).toString();

#if QT_VERSION > 0x050000
    QUrlQuery urlquery;
#else
    QUrl urlquery( TTB_URL + "/login/sso" );
#endif
    urlquery.addQueryItem( "view", "xml" );
    urlquery.addQueryItem( "user", username );
    urlquery.addQueryItem( "pass", password );

#if QT_VERSION > 0x050000
    QUrl url (TTB_URL + "/login/sso");
    url.setQuery(urlquery.query());
    QNetworkRequest request = QNetworkRequest(url);
#else
    QNetworkRequest request = QNetworkRequest(urlquery);
#endif

    request.setRawHeader( "Accept-Encoding", "identity" );
    request.setRawHeader( "Accept", "application/xml" );
    request.setRawHeader( "Accept-Charset", "utf-8" );

    networkMgr.get( request );
    parent->progressBar->setValue(parent->progressBar->value()+5/parent->shareSiteCount);
}
Exemple #6
0
bool QXmppSaslClientFacebook::respond(const QByteArray &challenge, QByteArray &response)
{
    if (m_step == 0) {
        // no initial response
        response = QByteArray();
        m_step++;
        return true;
    } else if (m_step == 1) {
        // parse request
        QUrlQuery requestUrl(challenge);
        if (!requestUrl.hasQueryItem("method") || !requestUrl.hasQueryItem("nonce")) {
            warning("QXmppSaslClientFacebook : Invalid challenge, nonce or method missing");
            return false;
        }

        // build response
        QUrlQuery responseUrl;
        responseUrl.addQueryItem("access_token", password());
        responseUrl.addQueryItem("api_key", username());
        responseUrl.addQueryItem("call_id", 0);
        responseUrl.addQueryItem("method", requestUrl.queryItemValue("method"));
        responseUrl.addQueryItem("nonce", requestUrl.queryItemValue("nonce"));
        responseUrl.addQueryItem("v", "1.0");

        response = responseUrl.query().toUtf8();

        m_step++;
        return true;
    } else {
        warning("QXmppSaslClientFacebook : Invalid step");
        return false;
    }
}
void UserManagementAPI::handleGitHubRegisterGet(HttpRequest &request, HttpResponse &response)
{
    const QHash<QString, QSharedPointer<QString>> &queries = request.getHeader().getQueries();

    QString code;
    if (!queries.contains("code"))
    {
        respond(response, StatusCode::MissingParameters, "no code");
    }

    code = *queries["code"].data();

    QString client_id = SettingsManager::getSingleton().get("GitHub/client_id").toString();
    QString client_secret = SettingsManager::getSingleton().get("GitHub/client_secret").toString();

    QUrl verificationUrl = QUrl("https://github.com/login/oauth/access_token");

    QUrlQuery query;

    query.addQueryItem("code", code);
    query.addQueryItem("client_id", client_id);
    query.addQueryItem("client_secret", client_secret);

    verificationUrl.setQuery(query.query());

    QNetworkRequest gitHubRequest;
    gitHubRequest.setUrl(verificationUrl);

    QByteArray replyData;
    m_networkServiceAccessor.post(gitHubRequest, QByteArray(), replyData);

    respondSuccess(response);
}
void QgsServerParameters::load( const QUrlQuery &query )
{
  // clean query string first
  QUrlQuery cleanQuery( query );
  cleanQuery.setQuery( query.query().replace( '+', QStringLiteral( "%20" ) ) );

  // load parameters
  for ( const auto &item : cleanQuery.queryItems( QUrl::FullyDecoded ) )
  {
    const QgsServerParameter::Name name = QgsServerParameter::name( item.first );
    if ( name >= 0 )
    {
      mParameters[name].mValue = item.second;
      if ( ! mParameters[name].isValid() )
      {
        mParameters[name].raiseError();
      }
    }
    else if ( item.first.compare( QLatin1String( "VERSION" ) ) == 0 )
    {
      const QgsServerParameter::Name name = QgsServerParameter::VERSION_SERVICE;
      mParameters[name].mValue = item.second;
      if ( ! mParameters[name].isValid() )
      {
        mParameters[name].raiseError();
      }
    }
    else if ( ! loadParameter( item.first, item.second ) )
    {
      mUnmanagedParameters[item.first.toUpper()] = item.second;
    }
  }
}
Exemple #9
0
static std::string qUrlQueryToPostData(const QUrlQuery & query) {
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
	return toStdString(query.encodedQuery());
#else
	return toUTF8(query.query(QUrl::FullyEncoded));
#endif
}
Exemple #10
0
void Shop::OnEditPageFinished() {
    QNetworkReply *reply = qobject_cast<QNetworkReply *>(QObject::sender());
    QByteArray bytes = reply->readAll();
    std::string page(bytes.constData(), bytes.size());
    std::string hash = Util::GetCsrfToken(page, "forum_thread");
    if (hash.empty()) {
        QLOG_ERROR() << "Can't update shop -- cannot extract CSRF token from the page. Check if thread ID is valid.";
        submitting_ = false;
        return;
    }

    // now submit our edit

    // holy shit give me some html parser library please
    std::string title = Util::FindTextBetween(page, "<input type=\"text\" name=\"title\" id=\"title\" value=\"", "\" class=\"textInput\">");
    if (title.empty()) {
        QLOG_ERROR() << "Can't update shop -- title is empty. Check if thread ID is valid.";
        submitting_ = false;
        return;
    }

    QUrlQuery query;
    query.addQueryItem("forum_thread", hash.c_str());
    query.addQueryItem("title", title.c_str());
    query.addQueryItem("content", requests_completed_ < shop_data_.size() ? shop_data_[requests_completed_].c_str() : "Empty");
    query.addQueryItem("submit", "Submit");

    QByteArray data(query.query().toUtf8());
    QNetworkRequest request((QUrl(ShopEditUrl(requests_completed_).c_str())));
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    QNetworkReply *submitted = app_.logged_in_nm().post(request, data);
    new QReplyTimeout(submitted, kEditThreadTimeout);
    connect(submitted, SIGNAL(finished()), this, SLOT(OnShopSubmitted()));
}
Exemple #11
0
void Session::Request::onLoginPage() {
    QNetworkReply *reply = qobject_cast<QNetworkReply*>(QObject::sender());
    if (reply->error()) {
        emit loginResult(0x01, "A network error occured: " + reply->errorString());
    }
    else {
        QNetworkRequest request = reply->request();
        // Extract CSF
        const QString hash = getCSRFToken(reply->readAll());
        const QString username = getAttribute(&request, LoginUsername).toString();
        const QString password = getAttribute(&request, LoginPassword).toString();

        QUrlQuery query;
        query.addQueryItem("login_email", username);
        query.addQueryItem("login_password", password);
        query.addQueryItem("hash", hash);
        query.addQueryItem("login", "Login");
        QByteArray data(query.query().toUtf8());

        request = createRequest(LoginUrl());
        setAttribute(&request, LoginUsername, username);
        setAttribute(&request, LoginPassword, password);
        request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

        QNetworkReply *r = _manager->post(request, data);

        connect(r, &QNetworkReply::finished, this, &Session::Request::Request::onLoginPageResult);
    }
    reply->deleteLater();
}
Exemple #12
0
  void writeGetTile( QgsServerInterface *serverIface, const QgsProject *project,
                     const QString &version, const QgsServerRequest &request,
                     QgsServerResponse &response )
  {
    Q_UNUSED( version );
    const QgsWmtsParameters params( QUrlQuery( request.url() ) );

    // WMS query
    QUrlQuery query = translateWmtsParamToWmsQueryItem( QStringLiteral( "GetMap" ), params, project, serverIface );

    // Get cached image
    QgsAccessControl *accessControl = serverIface->accessControls();
    QgsServerCacheManager *cacheManager = serverIface->cacheManager();
    if ( cacheManager )
    {
      QgsWmtsParameters::Format f = params.format();
      QString contentType;
      QString saveFormat;
      std::unique_ptr<QImage> image;
      if ( f == QgsWmtsParameters::Format::JPG )
      {
        contentType = QStringLiteral( "image/jpeg" );
        saveFormat = QStringLiteral( "JPEG" );
        image = qgis::make_unique<QImage>( 256, 256, QImage::Format_RGB32 );
      }
      else
      {
        contentType = QStringLiteral( "image/png" );
        saveFormat = QStringLiteral( "PNG" );
        image = qgis::make_unique<QImage>( 256, 256, QImage::Format_ARGB32_Premultiplied );
      }

      QByteArray content = cacheManager->getCachedImage( project, request, accessControl );
      if ( !content.isEmpty() && image->loadFromData( content ) )
      {
        response.setHeader( QStringLiteral( "Content-Type" ), contentType );
        image->save( response.io(), qPrintable( saveFormat ) );
        return;
      }
    }


    QgsServerParameters wmsParams( query );
    QgsServerRequest wmsRequest( "?" + query.query( QUrl::FullyDecoded ) );
    QgsService *service = serverIface->serviceRegistry()->getService( wmsParams.service(), wmsParams.version() );
    service->executeRequest( wmsRequest, response, project );
    if ( cacheManager )
    {
      QByteArray content = response.data();
      if ( !content.isEmpty() )
        cacheManager->setCachedImage( &content, project, request, accessControl );
    }
  }
QNetworkReply* NetworkManager::sendRequest(const char* type)
{
  QNetworkRequest request;

  request.setUrl(QUrl(cache_.server));
  request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/x-www-form-urlencoded"));

  QUrlQuery params;
  params.addQueryItem("id", QString::number(cache_.id));
  params.addQueryItem("sig", cache_.hash);
  params.addQueryItem("req", QString(type).toUtf8());

  if (cache_.logging)
  {
    Loggers::net->info() << params.query();
  }

	Loggers::net->trace() << "sending request " << type;

	return manager_->post(request, params.query().toUtf8());
}
Exemple #14
0
QString OAuth2::loginUrl()
{
    QUrlQuery urlQuery;
    urlQuery.addQueryItem("client_id", m_strClientID);
    urlQuery.addQueryItem("response_type", m_strResponseType);

    QString str = QString("%1?%2").arg(m_codeRequestURL).arg(urlQuery.query(QUrl::FullyEncoded));
    // optional if you have registered redirectURL at Box
    str += QString("&redirect_uri=%1").arg(QString(QUrl::toPercentEncoding(m_strRedirectURI)));
    qDebug() << "Login URL" << str;
    return str;
}
void tst_QUrlQuery::reconstructQuery()
{
    QFETCH(QString, queryString);
    QFETCH(QueryItems, items);

    QUrlQuery query;

    // add the items
    for (QueryItems::ConstIterator it = items.constBegin(); it != items.constEnd(); ++it) {
        query.addQueryItem(it->first, it->second);
    }
    QCOMPARE(query.query(), queryString);
}
void tst_QUrlQuery::encodedSetQueryItems()
{
    QFETCH(QString, key);
    QFETCH(QString, value);
    QFETCH(QString, expectedQuery);
    QFETCH(QString, expectedKey);
    QFETCH(QString, expectedValue);
    QFETCH(QUrl::ComponentFormattingOptions, encoding);
    QUrlQuery query;

    query.addQueryItem(key, value);
    COMPARE_ITEMS(query.queryItems(encoding), QueryItems() << qItem(expectedKey, expectedValue));
    QCOMPARE(query.query(encoding), expectedQuery);
}
void NetworkManager::messageSetConfirm(long id, const Callback<>& callback)
{
  QNetworkRequest request;

  request.setUrl(QUrl(cache_.server));
  request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/x-www-form-urlencoded"));

  QUrlQuery params;
  params.addQueryItem("id", QString::number(cache_.id));
  params.addQueryItem("sig", cache_.hash);
  params.addQueryItem("req", "MESSAGE_SHOWN");
  params.addQueryItem("req_data", QString::number(id) + "#");

  if (cache_.logging)
  {
    Loggers::net->info() << params.query();
  }

  QNetworkReply* reply = manager_->post(request, params.query().toUtf8());
  if (reply)
	{
		auto handler = [=](QNetworkReply* reply)
		{
			if(reply->error() != QNetworkReply::NoError)
			{
				Loggers::net->error() << "gor error in MESSAGE_SHOWN";

				if (callback)
				{
					callback(OpResult::RequestError);
				}
			}
		};

		restartTimer(reply, handler);
  }
}
void tst_QUrlQuery::differentDelimiters()
{
    QUrlQuery query;
    query.setQueryDelimiters('(', ')');

    {
        // parse:
        query.setQuery("foo(bar)hello(world)");

        QueryItems expected;
        expected << qItem("foo", "bar") << qItem("hello", "world");
        COMPARE_ITEMS(query.queryItems(), expected);
        COMPARE_ITEMS(query.queryItems(QUrl::FullyEncoded), expected);
        COMPARE_ITEMS(query.queryItems(QUrl::PrettyDecoded), expected);
    }

    {
        // reconstruct:
        // note the final ')' is missing because there are no further items
        QCOMPARE(query.query(), QString("foo(bar)hello(world"));
    }

    {
        // set items containing the new delimiters and the old ones
        query.clear();
        query.addQueryItem("z(=)", "y(&)");
        QCOMPARE(query.query(), QString("z%28=%29(y%28&%29"));

        QUrlQuery copy = query;
        QCOMPARE(query.query(), QString("z%28=%29(y%28&%29"));

        copy.setQueryDelimiters(QUrlQuery::defaultQueryValueDelimiter(),
                                QUrlQuery::defaultQueryPairDelimiter());
        QCOMPARE(copy.query(), QString("z(%3D)=y(%26)"));
    }
}
Exemple #19
0
QNetworkReply *NineGagRequest::createRequest(const QString &section, const QString &lastId)
{
    QUrl requestUrl("http://9gag.com/" + section);

    if (!lastId.isEmpty()) {
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
        requestUrl.addQueryItem("id", lastId);
#else
        QUrlQuery q;
        q.addQueryItem("id", lastId);
        requestUrl.setQuery(q.query());
#endif
    }

    return networkManager()->createGetRequest(requestUrl, NetworkManager::HTML);
}
void ShopSubmitter::BumpShop(ShopSubmission *submission) {
    QUrlQuery query;
    query.addQueryItem("forum_post", submission->data.value("forum_post").toString());
    query.addQueryItem("content", BUMP_MESSAGE);
    query.addQueryItem("post_submit", "Submit");

    submission->timerId = startTimer(GetTimeout());

    QNetworkRequest request(QUrl(ShopBumpUrl(submission->threadId)));
    request.setAttribute((QNetworkRequest::Attribute) SHOP_DATA_THREAD, submission->threadId);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    QNetworkReply *submitted = network->post(request, query.query().toUtf8());
    submission->state = SHOP_SUBMISSION_BUMPING;
    submission->currentReply = submitted;
    connect(submitted, SIGNAL(finished()), this, SLOT(OnBumpFinished()));
}
Exemple #21
0
void LoginTask::executeTask()
{
	setStatus("Logging in...");
	auto worker = MMC->qnam();
	connect(worker, SIGNAL(finished(QNetworkReply*)), this, SLOT(processNetReply(QNetworkReply*)));
	
	QUrl loginURL("https://login.minecraft.net/");
	QNetworkRequest netRequest(loginURL);
	netRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
	
	QUrlQuery params;
	params.addQueryItem("user", uInfo.username);
	params.addQueryItem("password", uInfo.password);
	params.addQueryItem("version", "13");
	
	netReply = worker->post(netRequest, params.query(QUrl::EncodeSpaces).toUtf8());
}
string CoordinatesRegister::sendCoordinates()
{
	double dlng;
	double dlat;

	dlng = static_cast<double>(lng) / 1000000.0;
	dlat = static_cast<double>(lat) / 1000000.0;

	string response;

	QEventLoop eventLoop;

	QNetworkAccessManager mgr;

	QUrlQuery params;

	params.addQueryItem("lng", QString::number(dlng, 'f'));
	params.addQueryItem("lat", QString::number(dlat, 'f'));
	params.addQueryItem("new_pothole", "Submit");

	QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));

	QNetworkRequest req(QUrl(host.c_str()));

	req.setRawHeader("Content-Type", "application/x-www-form-urlencoded");

	mgr.post(req, params.query(QUrl::FullyEncoded).toUtf8());

	QNetworkReply * reply = mgr.get(req);
	eventLoop.exec(); // blocks stack until "finished()" has been called

	if (reply->error() == QNetworkReply::NoError) // Success
	{
		response = "Success: ";
		response += reply->readAll().toStdString();
	}
	else // Failure
	{
		response = "Failure :";
		response += reply->errorString().toStdString();
	}

	delete reply;

	return response;
}
Exemple #23
0
void LoginDialog::OnLoginPageFinished() {
    QNetworkReply *reply = qobject_cast<QNetworkReply *>(QObject::sender());
    if (reply->error()) {
        DisplayError("Network error: " + reply->errorString());
        return;
    }
    switch (ui->loginTabs->currentIndex()) {
        case LOGIN_PASSWORD: {
            QByteArray bytes = reply->readAll();
            std::string page(bytes.constData(), bytes.size());
            std::string hash = Util::GetCsrfToken(page, "hash");
            if (hash.empty()) {
                DisplayError("Failed to log in (can't extract form hash from page)");
                return;
            }

            QUrlQuery query;
            query.addQueryItem("login_email", EncodeSpecialCharacters(ui->emailLineEdit->text()));
            query.addQueryItem("login_password", EncodeSpecialCharacters(ui->passwordLineEdit->text()));
            query.addQueryItem("hash", QString(hash.c_str()));
            query.addQueryItem("login", "Login");

            QUrl url(POE_LOGIN_URL);
            QByteArray data(query.query().toUtf8());
            QNetworkRequest request(url);
            request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
            QNetworkReply *logged_in = login_manager_->post(request, data);
            connect(logged_in, SIGNAL(finished()), this, SLOT(OnLoggedIn()));
            break;
        }
        case LOGIN_STEAM: {
            if (!steam_login_dialog_)
                InitSteamDialog();
            steam_login_dialog_->show();
            steam_login_dialog_->Init();
            break;
        }
        case LOGIN_SESSIONID: {
            LoginWithCookie(ui->sessionIDLineEdit->text());
            break;
        }
    }
}
Exemple #24
0
//******************************************************************************************
//function: doGet
//params: const QHash<QString, QString> &parameters
//return: QJsonObject
//Description:
//******************************************************************************************
QJsonObject WSClient::Get(const QString &operation, const QHash<QString, QString> &parameters)
{
    QJsonObject response;

    QUrlQuery values;
    values.addQueryItem("operation", operation);

    if (!this->lpzSessionId.isEmpty())
        values.addQueryItem("sessionName", this->lpzSessionId);

    QHashIterator<QString, QString> params(parameters);
    while(params.hasNext()) {
        params.next();
        values.addQueryItem(params.key(), params.value());
    }

    if(!values.isEmpty()) {
        QUrl url ( this->lpzURL );
        url.setQuery(values.query());

        if(url.isValid()) {
            QJsonObject result = this->doGet(url);

#ifdef QT_DEBUG
            //qDebug() << result;
#endif

            if ( !result.isEmpty() ) {
                return result;
            }
            else {
                QJsonObject error;
                error["code"] = "General";
                error["message"] = "No data";
                throw WSClientException( response );
            }
        }
    }

    return response;
}
  void writeGetFeatureInfo( QgsServerInterface *serverIface, const QgsProject *project,
                            const QString &version, const QgsServerRequest &request,
                            QgsServerResponse &response )
  {
    Q_UNUSED( version );
    const QgsWmtsParameters params( QUrlQuery( request.url() ) );

    // WMS query
    QUrlQuery query = translateWmtsParamToWmsQueryItem( QStringLiteral( "GetFeatureInfo" ), params, project, serverIface );

    // GetFeatureInfo query items
    query.addQueryItem( QgsWmsParameterForWmts::name( QgsWmsParameterForWmts::QUERY_LAYERS ), params.layer() );
    query.addQueryItem( QgsWmsParameterForWmts::name( QgsWmsParameterForWmts::I ), params.i() );
    query.addQueryItem( QgsWmsParameterForWmts::name( QgsWmsParameterForWmts::J ), params.j() );
    query.addQueryItem( QgsWmsParameterForWmts::name( QgsWmsParameterForWmts::INFO_FORMAT ), params.infoFormatAsString() );

    QgsServerParameters wmsParams( query );
    QgsServerRequest wmsRequest( "?" + query.query( QUrl::FullyDecoded ) );
    QgsService *service = serverIface->serviceRegistry()->getService( wmsParams.service(), wmsParams.version() );
    service->executeRequest( wmsRequest, response, project );
  }
Exemple #26
0
const QByteArray& BtTrackerRequest::toRequestData() const
{
    /* If not generated or out of date */
    if(!requestDataGenerated) {
        const_cast<QByteArray &>(requestData).clear();
        /* generate */
        QUrlQuery params;
        params.addQueryItem("info_hash", urlencodeUnicode(info_hash));
        params.addQueryItem("peer_id", urlencodeUnicode(peer_id));
        params.addQueryItem("port", QByteArray::number(port));
        params.addQueryItem("uploaded", QByteArray::number(uploaded));
        params.addQueryItem("downloaded", QByteArray::number(downloaded));
        params.addQueryItem("left", QByteArray::number(left));

        if(!ip.isNull()) params.addQueryItem("ip", ip.toString());
        switch(event) {
            case BtTrackerDownloadEvent::started:
                params.addQueryItem("event", "started");
                break;
            case BtTrackerDownloadEvent::completed:
                params.addQueryItem("event", "completed");
                break;
            case BtTrackerDownloadEvent::stopped:
                params.addQueryItem("event", "stopped");
                break;
            default:
            /* same as empty */
                break;
        }

        if(compact) params.addQueryItem("compact", compact?"1":"0");
        else if(no_peer_id) params.addQueryItem("no_peer_id", no_peer_id?"1":"0");
        if(numwant != 50) params.addQueryItem("numwant", QByteArray::number(numwant));

        const_cast<QByteArray &>(requestData).append(params.query(QUrl::EncodeUnicode));
        const_cast<bool &>(requestDataGenerated) = true;
    }

    return requestData;
}
void GoogleMap::executa(QString endereco) {


    QTextStream qout(stdout);

    QUrl uendereco;
    uendereco.setScheme("http");
    uendereco.setHost("maps.googleapis.com");
    uendereco.setPath("/maps/api/geocode/json");

    QUrlQuery qendereco;
    qendereco.addQueryItem("address",QUrl::toPercentEncoding(endereco));
    qendereco.addQueryItem("sensor","false");


    qout << qendereco.query();

    uendereco.setQuery(qendereco);

    GerenciadorConexao->get(QNetworkRequest(uendereco));

}
Exemple #28
0
void WarptenCli::execute(QString method, QString path, QUrlQuery &data) {

    // reset variables
    response = "";
    errorType = QNetworkReply::NoError;
    errorStr = "";

    // prepare request content
    QUrl url = baseUrl;
    url.setPath(path);
    QByteArray requestContent = data.query(QUrl::FullyEncoded).toUtf8();
    if (method == "GET") {
        url.setQuery(data);
    }

    // prepare connection
    QNetworkRequest request = QNetworkRequest(url);
    request.setRawHeader("User-Agent", "Agent name goes here");

    if (method != "GET") {
        request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    }

    if (method == "GET") {
        networkManager->get(request);
    }
    else if (method == "PUT") {
        networkManager->put(request, requestContent);
    }
    else if (method == "POST") {
        networkManager->post(request, requestContent);
    }
    else if (method == "DELETE") {
        networkManager->deleteResource(request);
    }
    qDebug() << method + " " + url.toString(QUrl::FullyEncoded) + " " + requestContent;
}
Exemple #29
0
void Shop::OnEditPageFinished() {
    QNetworkReply *reply = qobject_cast<QNetworkReply *>(QObject::sender());
    QByteArray bytes = reply->readAll();
    std::string page(bytes.constData(), bytes.size());
    std::string hash = Util::GetCsrfToken(page, "forum_thread");
    if (hash.empty()) {
        QLOG_ERROR() << "Can't update shop -- cannot extract CSRF token from the page. Check if thread ID is valid."
            << "If you're using Steam to login make sure you use the same login method (steam or login/password) in Acquisition, Path of Exile website and Path of Exile game client."
            << "For example, if you created a shop thread while using Steam to log into the website and then logged into Acquisition with login/password it will not work."
            << "In this case you should either recreate your shop thread or use a correct login method in Acquisition.";
        submitting_ = false;
        return;
    }

    // now submit our edit

    // holy shit give me some html parser library please
    std::string title = Util::FindTextBetween(page, "<input type=\"text\" name=\"title\" id=\"title\" value=\"", "\" class=\"textInput\">");
    if (title.empty()) {
        QLOG_ERROR() << "Can't update shop -- title is empty. Check if thread ID is valid.";
        submitting_ = false;
        return;
    }

    QUrlQuery query;
    query.addQueryItem("forum_thread", hash.c_str());
    query.addQueryItem("title", Util::Decode(title).c_str());
    query.addQueryItem("content", requests_completed_ < shop_data_.size() ? shop_data_[requests_completed_].c_str() : "Empty");
    query.addQueryItem("submit", "Submit");

    QByteArray data(query.query().toUtf8());
    QNetworkRequest request((QUrl(ShopEditUrl(requests_completed_).c_str())));
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    QNetworkReply *submitted = app_.logged_in_nm().post(request, data);
    new QReplyTimeout(submitted, kEditThreadTimeout);
    connect(submitted, SIGNAL(finished()), this, SLOT(OnShopSubmitted()));
}
Exemple #30
0
bool HttpAgent::async(const QObject * receiver, const char * method,
	const QString& httpMethod, const Route& route, const QMap<QString, QVariant>& params,
	const QMap<QString, QString>& filePaths,
	const QMap<QString, QVariant>& argsToSlot,
	const QObject * downloadProgressReceiver, const char * downloadProgressMethod
)
{
	//在路由里取出url规则
	QString routePattern = route.pattern();
qDebug() << "Services::async():" << routePattern;

	//遍历所有"默认参数"(如:_format, _locale), 做替换
	QMapIterator<QString, QVariant> defaultParamIterator(defaultParams);
	while ( defaultParamIterator.hasNext() )
	{
		defaultParamIterator.next();
		QString toReplace = QString("{") + defaultParamIterator.key() + QString("}");
		routePattern.replace( toReplace, defaultParamIterator.value().toString() );
qDebug() << "Services::async():replace("<< defaultParamIterator.key() << "," << defaultParamIterator.value() << "):" << routePattern;
	}
qDebug() << "Services::async():" << routePattern;


	//QString paramsString;
	QUrlQuery query;
	int paramCount = 0;
	QMapIterator<QString, QVariant> i(params);
	while ( i.hasNext() )
	{
		i.next();

		/*if ( paramCount > 0 )
		{
			paramsString += "&";
		}
		paramsString += i.key();
		paramsString += '=';
		paramsString += i.value();*/
		QString value = QString( QUrl::toPercentEncoding( i.value().toString(), "", "+" ) );

		query.addQueryItem(i.key(), value);

		//replace if found in urlPattern
		QString toReplace = QString("{") + i.key() + QString("}");
		routePattern.replace( toReplace, i.value().toString() );

		paramCount++;
	}

	/*QString paramString = query.query(QUrl::FullyEncoded);
	QByteArray ba = QUrl::toPercentEncoding(paramString, "&=", "+");
	qDebug() << "BA ==== " << ba;*/

qDebug() << "Services::async(): paramsString: \"" << query.query(QUrl::FullyEncoded) << "\""; //paramsString << "\"";

	QString host = !route.host().isEmpty() ? route.host() : defaultHost;
	QString url(defaultProtocol + "://" + host + routePattern);

	//req.setRawHeader(QByteArray("X-Requested-With"), QByteArray("XMLHttpRequest"));
	QMap<QString, QString> headers;
	headers[ "X-Requested-With" ] = "XMLHttpRequest";

	return sendRequest(httpMethod,
		url,
		params, //query.query(QUrl::FullyEncoded), //paramsString, //"email="+loginName+"&password="+password,
		filePaths,
		headers,
		receiver, method, argsToSlot, downloadProgressReceiver, downloadProgressMethod );

}