Example #1
0
/*Name: queryWeather
 *Description: Function used to query OpenWeatherMap.com to retrieve WeatherModel
 *Parameter Description: Integer representing current town selected from list
 */
void WeatherModel::queryWeather(int townNum){
    //the network manager will post and recieve our HTTP requests
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);

    //the host of the webservice
    QUrl url("http://openweathermap.org/data/2.5/weather");

    //set up the request to post
    QNetworkRequest request(url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

    //the additional query data to enter
    QUrlQuery query(url);
    query.addQueryItem("APPID","291cc02999b830ce1d7bf176d3d49172"); //our CS3307 APPID
    query.addQueryItem("q", _townList.at(townNum) + ",can");
    query.addQueryItem("units", "metric");
    url.setQuery(query);

    //update the request with the new query information.
    request.setUrl(url);

    //post the request
    manager->post(request, url.toEncoded());

    //connect the "finished" signal from the manager to our response handling method
    QObject::connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(replyFinished(QNetworkReply *)));
}
Example #2
0
QByteArray QWget::exec(QUrl url, QByteArray postData)
{
    QNetworkAccessManager * manager = network_manager();
    manager->setProxy(_proxy);
    connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(onFinished(QNetworkReply*)));
    QNetworkRequest * nr = new QNetworkRequest(url);
    //nr->setRawHeader("User-Agent","Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1");
    nr->setRawHeader("User-Agent","Opera/9.0");
    qDebug() << url;

    finished = false;
    if(postData.isNull())
        manager->get(*nr);
    else
        manager->post(*nr,postData);
    while(!finished)
    {
        QCoreApplication::instance()->processEvents();
        #ifdef WIN32
        Sleep(50);
        #else
            usleep(50000);
        #endif
    }
    delete nr;
    QCoreApplication::instance()->processEvents();
    //qDebug() << "Ans: " << ans;
    // delete nr;
    return ans;
    return QByteArray();
}
QNetworkReply::NetworkError NetworkServiceAccessor::post(const QNetworkRequest &request, const QByteArray &data, QByteArray &replyData) const
{
    QNetworkReply::NetworkError result = QNetworkReply::NoError;
    QFuture<void> future = QtConcurrent::run(QThreadPool::globalInstance(), [&](){
        QEventLoop loop;
        QNetworkAccessManager networkAccessManager;
        QNetworkReply *reply = networkAccessManager.post(request, data);

        connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
        LoggingManager::getSingleton().log() << "NetworkService Post: " << request.url().toString();
        qDebug() << "NetworkService Post: " << request.url().toString();
        LoggingManager::getSingleton().log() << "Payload: " << QString::fromUtf8(data);
        qDebug() << "Payload: " << QString::fromUtf8(data);
        loop.exec();

        result = reply->error();

        if (result != QNetworkReply::NoError)
        {
            qDebug() << "Network Service Accessor Error: " << reply->errorString();
            LoggingManager::getSingleton().log() << "NetworkService: " << reply->errorString();
        }

        replyData = reply->readAll();
        qDebug() << replyData;
        reply->deleteLater();
    });

    future.waitForFinished();
    return result;
}
Example #4
0
/*
 * Add message request set
 */
void ElisaServer::addMessage(QString body, double latitude, double longitude)
{
    //check if user is already logged
    if(m_nickname!=""){
        QNetworkAccessManager *manager = new QNetworkAccessManager(this);

        //set urls
        QUrl url;
        url.setUrl("http://projectelisa.altervista.org/main/post/?x="+QString::number(latitude,'g',10)+"&y="+QString::number(longitude,'g',10)+"&z=0&nick="+temp_nickname+"&pass="******"body="+body);

        //bind network request
        QNetworkRequest request;
        request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
        request.setUrl(url);

        //define callback
        QNetworkReply * r;
        r = manager->post(request, postData);
        connect(r,SIGNAL(finished()),this,SLOT(addMessageFinished()));
    } else {
        emit addMessageReply("denied");
    }

}
Example #5
0
/*!
\brief Subscribe new feed
*/
void GoogleReader::addFeed(QString feedAddress, QString feedName, QString feedLabel) {
    qDebug() << "GoogleReader::addFeed(" << feedAddress << "," << feedName << "," << feedLabel << ")";

    if (_googleCookie == NULL) {
        emit signalConnected(false);
        this->login();
    }

    if (feedAddress.left(7) != "http://")
        feedAddress.insert(0, "http://");

    QString url = "http://www.google.com/reader/api/0/subscription/edit?client=GooDer";
    QString postData = "";

    if (feedName.isEmpty() && feedLabel.isEmpty()) {
        postData = QString("s=feed/%1&ac=subscribe&T=%2").arg(feedAddress, _googleToken);
    } else if (!feedName.isEmpty() && feedLabel.isEmpty()) {
        postData = QString("s=feed/%1&ac=subscribe&t=%2&T=%3").arg(feedAddress, feedName, _googleToken);
    } else if (!feedName.isEmpty() && !feedLabel.isEmpty()) {
        postData = QString("s=feed/%1&ac=subscribe&t=%2&a=user/-/label/%3&T=%4").arg(feedAddress, feedName, feedLabel, _googleToken);
    } else if (feedName.isEmpty() && !feedLabel.isEmpty()) {
        postData = QString("s=feed/%1&ac=subscribe&a=user/-/label/%2&T=%3").arg(feedAddress, feedLabel, _googleToken);
    }

    QNetworkAccessManager* feedConnection = new QNetworkAccessManager(this);

    QNetworkRequest postRequest = QNetworkRequest(QUrl(url));
    postRequest.setRawHeader("Authorization", _googleCookie->value());
    postRequest.setRawHeader("Content-Type", "application/x-www-form-urlencoded");

    connect(feedConnection, SIGNAL(finished(QNetworkReply*)),
            this, SLOT(parseAddFeed(QNetworkReply *)));

    feedConnection->post(postRequest, postData.toAscii());
}
Example #6
0
// 执行请求的辅助函数
void HttpClientPrivate::executeQuery(HttpClientPrivate *d, HttpMethod method,
                                     std::function<void (const QString &)> successHandler,
                                     std::function<void (const QString &)> errorHandler,
                                     const char *encoding) {
    // 如果不使用外部的 manager 则创建一个新的,在访问完成后会自动删除掉
    bool debug = d->debug;
    bool internal;
    QNetworkAccessManager *manager = HttpClientPrivate::getManager(d, &internal);
    QNetworkRequest        request = HttpClientPrivate::createRequest(d, method);
    QNetworkReply           *reply = nullptr;

    switch (method) {
    case HttpClientPrivate::GET:
        reply = manager->get(request);
        break;
    case HttpClientPrivate::POST:
        reply = manager->post(request, d->useJson ? d->json.toUtf8() : d->params.toString(QUrl::FullyEncoded).toUtf8());
        break;
    case HttpClientPrivate::PUT:
        reply = manager->put(request, d->useJson ? d->json.toUtf8() : d->params.toString(QUrl::FullyEncoded).toUtf8());
        break;
    case HttpClientPrivate::DELETE:
        reply = manager->deleteResource(request);
        break;
    default:
        break;
    }

    QObject::connect(reply, &QNetworkReply::finished, [=] {
        QString successMessage = HttpClientPrivate::readReply(reply, encoding); // 请求结束时一次性读取所有响应数据
        QString errorMessage   = reply->errorString();
        HttpClientPrivate::handleFinish(debug, successMessage, errorMessage, successHandler, errorHandler,
                                        reply, internal ? manager : nullptr);
    });
}
void
StravaUploadDialog::requestLogin()
{
    progressLabel->setText(tr("Login..."));
    progressBar->setValue(5);

    QString username = appsettings->cvalue(mainWindow->cyclist, GC_STRUSER).toString();
    QString password = appsettings->cvalue(mainWindow->cyclist, GC_STRPASS).toString();

    QNetworkAccessManager networkMgr;
    QEventLoop eventLoop;
    connect(&networkMgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(requestLoginFinished(QNetworkReply*)));
    connect(&networkMgr, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit()));

    QByteArray data;
    /*data += "{\"email\": \"" + username + "\",";
    data += "\"password\": \"" + password + "\",";
    data += "\"agreed_to_terms\": \"true\"}";*/

    QUrl params;

    params.addQueryItem("email", username);
    params.addQueryItem("password",password);
    params.addQueryItem("agreed_to_terms", "true");
    data = params.encodedQuery();

    QUrl url = QUrl( STRAVA_URL_SSL + "/authentication/login");
    QNetworkRequest request = QNetworkRequest(url);
    //request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");

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

    networkMgr.post( request, data);
    eventLoop.exec();
}
Example #8
0
void TwitPicDialog::accept() {
	m_progressBar->reset();
	m_errorMsgLabel->hide();
	m_progressBar->show();
	QUrl url("http://twitpic.com/api/upload");
	QNetworkRequest post(url);
	QByteArray boundary = "------------------------------7251e57fe7ed"; // "--------dlf-maximum";
	post.setHeader(QNetworkRequest::ContentTypeHeader, "multipart/form-data; boundary=" + boundary);
	post.setRawHeader("Host", "twitpic.com");
	QByteArray ba;
	ba.append("--" + boundary + "\r\n");
	ba.append("Content-Disposition: form-data; name=\"media\"; filename=\"1.jpg\"\r\n");
	ba.append("Content-Type: image/" + QImageReader::imageFormat(m_fileName) + "\r\n\r\n");
	QFile file(m_fileName);
	file.open(QIODevice::ReadOnly);
	ba.append(file.readAll());
	ba.append("\r\n");
	ba.append("--" + boundary + "\r\n");
	ba.append("Content-Disposition: form-data; name=\"username\"\r\n\r\n");
	ba.append(m_username + "\r\n");
	ba.append("--" + boundary + "\r\n");
	ba.append("Content-Disposition: form-data; name=\"password\"\r\n\r\n");
	ba.append(m_password + "\r\n");
	ba.append("--" + boundary + "--" + "\r\n");
	post.setHeader(QNetworkRequest::ContentLengthHeader, ba.count());

	QNetworkAccessManager *manager = new QNetworkAccessManager(this);
	m_reply = manager->post(post, ba);
	connect(m_reply, SIGNAL(uploadProgress(qint64, qint64)), this, SLOT(updateProgressBar(qint64,qint64)));
	connect(m_reply, SIGNAL(finished()), this, SLOT(uploadFinished()));
	m_postButton->setEnabled(false);
}
Example #9
0
void KDSoapThreadTask::process(QNetworkAccessManager& accessManager)
{
    // Can't use m_iface->asyncCall, it would use the accessmanager from the main thread
    //KDSoapPendingCall pendingCall = m_iface->asyncCall(m_method, m_message, m_action);

    //Headers should be always qualified
    for (KDSoapHeaders::Iterator it = m_data->m_headers.begin(); it != m_data->m_headers.end(); ++it) {
        it->setQualified(true);
    }

#if QT_VERSION >= 0x040700
    QNetworkCookieJar* jar = m_data->m_iface->d->accessManager()->cookieJar();
    // Qt-4.6: this aborts in setParent(this) because the jar is from another thread
    // Qt-4.7: it's from a different thread, so this won't change the parent object
    accessManager.setCookieJar(jar);
#endif

    accessManager.setProxy( m_data->m_iface->d->accessManager()->proxy() );

    QBuffer* buffer = m_data->m_iface->d->prepareRequestBuffer(m_data->m_method, m_data->m_message, m_data->m_headers);
    QNetworkRequest request = m_data->m_iface->d->prepareRequest(m_data->m_method, m_data->m_action);
    QNetworkReply* reply = accessManager.post(request, buffer);
    m_data->m_iface->d->setupReply(reply);
    KDSoapPendingCall pendingCall(reply, buffer);

    KDSoapPendingCallWatcher *watcher = new KDSoapPendingCallWatcher(pendingCall, this);
    connect(watcher, SIGNAL(finished(KDSoapPendingCallWatcher*)),
            this, SLOT(slotFinished(KDSoapPendingCallWatcher*)));
}
Example #10
0
/**
 * @fn sendReportUsingGithub
 */
void GithubModule::sendReportUsingGithub(const QMap<QString, QString> info)
{
    if (debug) qDebug() << "[GithubModule]" << "[sendReportUsingGithub]";

    // authentication
    QString headerData;
    if (info.contains(QString("userdata")))
        headerData = QString("token ") + info[QString("userdata")];
    else {
        QString concatenated = info[QString("username")] + QString(":") + info[QString("password")];
        QByteArray userData = concatenated.toLocal8Bit().toBase64();
        headerData = QString("Basic ") + userData;
    }
    // text
    QByteArray text = prepareRequest(info[QString("title")], info[QString("body")]);
    QByteArray textSize = QByteArray::number(text.size());
    // sending request
    QNetworkRequest request = QNetworkRequest(parseString(dynamic[QString("ISSUES_URL")]));
    request.setRawHeader("Authorization", headerData.toLocal8Bit());
    request.setRawHeader("User-Agent", "reportabug");
    request.setRawHeader("Host", "api.github.com");
    request.setRawHeader("Accept", "*/*");
    request.setRawHeader("Content-Type", "application/vnd.github.VERSION.raw+json");
    request.setRawHeader("Content-Length", textSize);
    QNetworkAccessManager *manager = new QNetworkAccessManager;
    manager->post(request, text);
    disconnect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(githubFinished(QNetworkReply *)));
    connect(manager, SIGNAL(finished(QNetworkReply *)), this, SLOT(githubFinished(QNetworkReply *)));
}
Example #11
0
QJsonObject festrip_api::send_query(bool query_type, QUrlQuery query)
{
  // create custom temporary event loop on stack
  QEventLoop eventLoop;

  // "quit()" the event-loop, when the network request "finished()"
  QNetworkAccessManager mgr;
  QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));

  // the HTTP request
  QNetworkRequest req = QNetworkRequest(QUrl(query));
  if (GET == query_type) {
    QNetworkReply *reply = mgr.get(req);
  } else {
    QNetworkReply *reply = mgr.post(req);
  }
  eventLoop.exec(); // blocks stack until "finished()" has been called

  if (QNetworkReply::NoError == reply->error()) {
   //success
   qDebug() << "Success " <<reply->readAll();
  } else {
   //failure
   qDebug() << "Failure " <<reply->errorString();
   qDebug() << "Request: " << reply->url();
  }
  delete reply;
  // return((QJsonObject)reply->readAll());
}
Example #12
0
bool AWebservice::makeRequest(const QNetworkRequest& request, const QString& data)
{
	QNetworkAccessManager http;

	http.setProxy(defaultProxy());

	QNetworkReply* reply = NULL;
	if (data.length() == 0)
		reply = http.get(request);
	else
		reply = http.post(request, data.toUtf8());

	QObject::connect(reply, SIGNAL(sslErrors(const QList<QSslError>&)), this, SLOT(process_ssl_errors(const QList<QSslError>&)));
	QObject::connect(reply, SIGNAL(downloadProgress(qint64, qint64)),   this, SLOT(process_download_progress(qint64, qint64)));
	QObject::connect(reply, SIGNAL(uploadProgress(qint64, qint64)),     this, SLOT(process_upload_progress(qint64, qint64)));

	QEventLoop loop;
	QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
    loop.exec();

	bool result = parseReply(reply);

	delete reply;

	return result;
}
Example #13
0
int main(int argc, char **argv) {
    QCoreApplication app(argc, argv);
    
    QNetworkAccessManager *manager = new QNetworkAccessManager;
    QObject::connect(manager, &QNetworkAccessManager::finished, [=](QNetworkReply *reply) {
        QJsonParseError error;
        QJsonDocument doc2 = QJsonDocument::fromJson(reply->readAll(), &error);
        qDebug()<<doc2.toJson();

        reply-> deleteLater();
        qApp->quit();
    }); 
    
    QNetworkRequest request(QUrl("http://demo.gitlab.com/api/v3/user/keys"));
    //request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
    request.setRawHeader("PRIVATE-TOKEN", "xD2u7qqskGczXKZ7Mum9");
    
    //QByteArray data = R"json({"email":"*****@*****.**", "password":"******"})json";
    QByteArray data = R"json({"title":"test", "key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXpNlgbh36Lfryc5ftLWYf/tkg/jBzanyAAyDOEBZtukfCsgxsBh87MlTkLyE7f9QT2/TQAB8r1Qx9ZdvkNAFkTAZgkV4BZA9+CiPYv/THZ+KGBCWEnNZcS0+kh7Y3BLmzsMduS/0XkJQF9Wn+v7em5caY3//oCy3iT2sBMOnFSPE9xCqdM+w31sX7TM9sprgjVSoCLfBdlXdoStVn9UsJHxrHTLL0TzeDHWx2Aiqn/2CP2zsEj8fp1VDXVfzNe/0knaHq7WqN5NaCZEpa3EbuimK7i+65gcHS6UfGZ0NMqwn9MA95TLK3zVqvmw62VAj1QEa58XLZh/7y1AlHIYav [email protected]"})json";
    manager->post(request, data);
    //manager->get(request);

    return app.exec();
}
Example #14
0
void DeviceAccess::pushSales()
{

    QByteArray data;
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
            this, SLOT(replypushsalescomplete(QNetworkReply *)));
    for(int i = 0; i < sales.size(); i++)
    {

    string s = sales.at(i).value("item").toStdString();
    s.erase(
        remove( s.begin(), s.end(), '\"' ),
        s.end()
        );
    QNetworkRequest request;
    request.setUrl(QUrl("http://vergeapp.com/api/v2/addsales.json"));
    QUrlQuery params;
    params.addQueryItem("firm", firm);
    params.addQueryItem("outlet", outlet);
    params.addQueryItem("product_name", QString::fromStdString(s));
    params.addQueryItem("price", sales.at(i).value("price"));
    params.addQueryItem("quantity", sales.at(i).value("qty"));
    params.addQueryItem("reorder", "1");
    params.addQueryItem("cost", "2");
    qDebug() << params.toString();
    manager->post(request, data.append(params.toString()));
    }


}
Example #15
0
void MyEngine::sendGoogleReq(const QString &msg) {
    qDebug() << "Called the sendGoogleReq method with " << msg;

    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    connect(manager, SIGNAL(finished(QNetworkReply*)),
            this, SLOT(replyFinished(QNetworkReply*)));

    //manager->get(QNetworkRequest(QUrl("http://qt.nokia.com")));
    //QNetworkRequest myReq = QNetworkRequest(QUrl("https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=en-US"));
    // myReq.setHeader(QNetworkRequest::ContentTypeHeader, "audio/pcm; rate=8000");

    QNetworkRequest myReq = QNetworkRequest(QUrl("https://www.google.com/speech-api/v1/recognize?xjerr=1&client=test&lang=pl-PL"));
    myReq.setHeader(QNetworkRequest::ContentTypeHeader, "audio/x-flac; rate=8000");

    //req.setHeader(QNetworkRequest::ContentTypeHeader, "");
    //open audio file to send
    qDebug() << "Sending file: " << flacFilePath;
    QFile file(flacFilePath);
    if (file.exists()) {
        file.open(QIODevice::ReadOnly)?qDebug() << "file opened: " << flacFilePath:qCritical() << "file open error: " << flacFilePath;
        QByteArray data = file.readAll();
        // myReq.setRawHeader("Content", data);
        manager->post(myReq, data);
    }

}
Example #16
0
void Eyrie::process() {
	if(recbin == NULL) {
		return;
	}
	if(GST_BUFFER_SIZE(buf) == 0) {
		endRecording();
		QVariant ret;
		QMetaObject::invokeMethod(parent(), "setStatus", Q_RETURN_ARG(QVariant, ret), Q_ARG(QVariant, "Sorry, the recording failed."));
		return;
	}
	mutex->lock();
	const float *pcm = (const float *) GST_BUFFER_DATA(buf);
	Codegen *codegen = new Codegen(pcm, GST_BUFFER_SIZE(buf) / sizeof(float), 0);
	mutex->unlock();
	std::string code = codegen->getCodeString();
	QNetworkAccessManager *networkManager = new QNetworkAccessManager();
	QUrl url("http://developer.echonest.com/api/v4/song/identify");
	QByteArray params;
	params.append("api_key=RIUKSNTIPKUMPHPEO");
	params.append("&query=[{\"metadata\":{\"version\":4.12},\"code\":\""); params.append(code.c_str()); params.append("\"}]");
	QNetworkRequest request;
	request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded;charset=UTF-8");
	request.setUrl(url);
	connect(networkManager, SIGNAL(finished(QNetworkReply *)), this, SLOT(parseResponse(QNetworkReply *)));
	networkManager->post(request, params);
}
bool ServerListener::postTaskResults(QString taskId, QString filepath)
{
    QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);

    QHttpPart textPart;
    textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"task_assignment_id\""));
    textPart.setBody(taskId.toUtf8());

    QHttpPart filePart;
    filePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("text/plain"));
    filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("attachment; name=\"result_file\"; filename=\"out.csv\""));
    QFile *file = new QFile(filepath);
    file->open(QIODevice::ReadOnly);
    filePart.setBodyDevice(file);
    file->setParent(multiPart); // we cannot delete the file now, so delete it with the multiPart

    multiPart->append(textPart);
    multiPart->append(filePart);

    QEventLoop loop;
    QNetworkAccessManager* manager = new QNetworkAccessManager();
    QNetworkRequest request = QNetworkRequest(QUrl(ClientSettingsManager::getServerUrl() + "postTaskData"));
    connect(manager, SIGNAL(finished(QNetworkReply*)), &loop, SLOT(quit()));
    manager->post(request, multiPart);
    loop.exec();
    file->close();
    delete multiPart;
    delete manager;
    return true;
}
Example #18
0
File: toxme.cpp Project: 1KoT1/qTox
QByteArray Toxme::makeJsonRequest(QString url, QString json, QNetworkReply::NetworkError &error)
{
    if (error)
        return QByteArray();

    QNetworkAccessManager netman;
    netman.setProxy(Settings::getInstance().getProxy());
    QNetworkRequest request{url};
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
    QNetworkReply* reply = netman.post(request,json.toUtf8());

    while (!reply->isFinished())
    {
        QThread::msleep(1);
        qApp->processEvents();
    }

    error = reply->error();
    if (error)
    {
        qWarning() << "makeJsonRequest: A network error occured:" << reply->errorString();
        return QByteArray();
    }

    return reply->readAll();
}
void CWizCrashReportDialog::on_btn_yes_clicked()
{
    accept();

    QString text = m_reports;
    QtConcurrent::run([text](){
        QString reportText = text;
        const int maxSize = 1024 * 128 - 100;
        if (reportText.size() > maxSize)
        {
            reportText.truncate(maxSize);
            reportText.append("\n Wow! too may words, truncated!");
        }

        //
        QString url = WizService::WizApiEntry::crashReportUrl();
        QNetworkRequest request(url);
        request.setHeader(QNetworkRequest::ContentTypeHeader,
            "application/x-www-form-urlencoded");

        QUrlQuery postData;
        postData.addQueryItem("platform", "mac");
        postData.addQueryItem("token", "");
        postData.addQueryItem("subject", "Version: " + QString(WIZ_CLIENT_VERSION) + "  UUID : " + WizGenGUIDLowerCaseLetterOnly());
        postData.addQueryItem("error", reportText);

        QNetworkAccessManager net;
        QNetworkReply* reply = net.post(request, postData.toString(QUrl::FullyEncoded).toUtf8());

        CWizAutoTimeOutEventLoop loop(reply);
        loop.exec();

        if (loop.error() != QNetworkReply::NoError)
        {
            qDebug() << "[Crash report]Upload failed!";
            return;
        }

        rapidjson::Document d;
        d.Parse<0>(loop.result().toUtf8().constData());

        if (!d.HasMember("return_code"))
        {
            qDebug() << "[Crash report]Can not get return code ";
            return;
        }

        int returnCode = d.FindMember("return_code")->value.GetInt();
        if (returnCode != 200)
        {
            qDebug() << "[Crash report]Return code was not 200, error :  " << returnCode << loop.result();
            return;
        }
        else
        {
            qDebug() << "[Crash report]Upload OK";
        }

    });
}
Authorization::Authorization(const QString &login, const QString &password) :
    QObject(NULL),
    m_login(login),
    m_password(password)
{
    QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);

    QHttpPart loginPart;
    loginPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"login\""));
    loginPart.setBody(m_login.toLatin1());

    QHttpPart passPart;
    passPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"pass\""));
    passPart.setBody(m_password.toLatin1());

    multiPart->append(loginPart);
    multiPart->append(passPart);

    QUrl url("http://freedomsex.net/login.php");
    QNetworkRequest request(url);

    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    QNetworkReply *reply = manager->post(request, multiPart);
    multiPart->setParent(reply);

    connect(manager, SIGNAL(finished(QNetworkReply*)), SLOT(test_answer(QNetworkReply*)));
    connect(manager, SIGNAL(finished(QNetworkReply*)), manager, SLOT(deleteLater()));
}
Example #21
0
QString ccloud::uploadHtmlSchedule(QString htmlpath)
{
    qDebug() << "upload test";
    QFile *file = new QFile( htmlpath );
    QFileInfo info( htmlpath );
    if (!file->exists()){
        qDebug() << "file not exists";
        return "";
    }

    QSettings settings;

    QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
    QHttpPart textPart;
    textPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"upload\""));
    textPart.setBody("upload");

    QHttpPart userPart;
    userPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"user_id\""));
    userPart.setBody( settings.value("cloud/id").toString().toLatin1() );

    QHttpPart filePart;
    filePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("text/html"));
    filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant(
                            QString("form-data; name=\"userfile\"; filename=\"%1\"").arg( info.fileName() )));

    file->open(QIODevice::ReadOnly);
    filePart.setBodyDevice(file);
    file->setParent(multiPart);

    multiPart->append(textPart);
    multiPart->append(userPart);
    multiPart->append(filePart);


    QUrl url("https://api.theocbase.net/theocbase_get.php");
    QNetworkRequest request(url);
    QNetworkAccessManager *manager = new QNetworkAccessManager(this);
    QNetworkReply *reply = manager->post(request,multiPart);
    multiPart->setParent(reply);

    QEventLoop loop;
    connect(reply,SIGNAL(finished()),&loop,SLOT(quit()));
    loop.exec();
    QString replystr = reply->readAll();

    if (reply->error() == QNetworkReply::NoError) {
        if (replystr == "true"){
            return "https://schedule.theocbase.net/" + info.fileName();
        }else{
            return "";
        }
    } else {
        QMessageBox::information(0,"","Error when uploding html-schedule to cloud\n" + reply->errorString());
        return "";
    }


}
Example #22
0
void getTable::on_button_00_03_clicked()
{
    QNetworkAccessManager * pManager = new QNetworkAccessManager;
    connect(pManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(replyFinish(QNetworkReply*)));
    pManager->post(QNetworkRequest(QUrl("http://localhost:8888/post")),
                   QString("method=getQuote&text=TEST_TEXT&format=xml").toUtf8());
                    //QString("method=getQuote&text=TEST_TEXT&format=xml").toUtf8());
}
Example #23
0
void Dialog::buttonBayanWasClicked()
{
    QString qStr = "http://bash.im/quote/" + id.at(currentIndexOfElements).toPlainText().mid(1);
    QUrl url(qStr);
    QNetworkRequest networkRequest(url);
    networkRequest.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
    QNetworkAccessManager *nam = new QNetworkAccessManager(this);
    nam->post(networkRequest, "/bayan");
}
void TabbedMainWindow::addUsersToCluster(QString hostname, QString usernamepassword, QListWidget *list1, QListWidget *list2) {
    ProgressDialog progbar("CMClusters - Connecting...", "Please wait while a connection to the selected clusters are established!");
    progbar.show();

    for (int i = list1->count(); i --> 0;) {
        if (list1->item(i)->isSelected()) {
        QString userid = getSubstringBetween(list1->item(i)->text(), QString("("), QString(")"));
        qDebug() << userid;
        QListWidgetItem* userToRemove = list1->item(i);
        QListWidgetItem* userToAdd = new QListWidgetItem(list1->item(i)->text());
        QByteArray jsonString = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns=\"http://www.cisco.com/AXL/API/8.5\">";
        jsonString += "<soapenv:Body><ns:executeSQLUpdate><sql>UPDATE enduser SET enduser.islocaluser = '******' WHERE enduser.userid = '" + userid.toLocal8Bit() + "'</sql></ns:executeSQLUpdate></SOAP-ENV:Envelope>";
        QByteArray postDataSize = QByteArray::number(jsonString.size());
        QUrl req("https://" + hostname.toLocal8Bit() + ":8443/axl/");
        QNetworkRequest request(req);

        request.setRawHeader("SOAPAction", "\"CUCM:DB ver=8.5 executeSQLUpdate\"");
        request.setRawHeader("Authorization", "Basic " + usernamepassword.toLocal8Bit());
        request.setRawHeader("Content-Type", "text/xml");
        request.setRawHeader("Content-Length", postDataSize);

        QNetworkAccessManager test;
        QEventLoop loop;
        connect(&test, SIGNAL(finished(QNetworkReply*)), &loop, SLOT(quit()));
        QNetworkReply * reply = test.post(request, jsonString);
        reply->ignoreSslErrors(); // Ignore only unsigned later on
        connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(onError(QNetworkReply::NetworkError)));
        loop.exec();

        QByteArray response = reply->readAll();
        QVariant statusCode = reply->attribute( QNetworkRequest::HttpStatusCodeAttribute );

        if ( !statusCode.isValid() ) {
            qDebug() << "Failed...";
            qDebug() << statusCode.data();
        }

        int status = statusCode.toInt();

        if ( status != 200 ) {
            QString reason = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
            qDebug() << reason;
        } else {
            qDebug() << "Good reply";
            qDebug() << response;
            if (response.contains("<rowsUpdated>1</rowsUpdated>")) {
                qDebug() << "Something went correct!";
                delete userToRemove;
                list2->addItem(userToAdd);
                userToAdd->setBackground(QColor(0, 170, 255));//Correct the color scheme
            } else {
                qDebug() << "We f****d up!";
            }
        }
        }
    }
void
CyclingAnalyticsUploader::requestUploadCyclingAnalytics()
{
    parent->progressLabel->setText(tr("Upload ride to CyclingAnalytics..."));
    parent->progressBar->setValue(parent->progressBar->value()+10/parent->shareSiteCount);

    QEventLoop eventLoop;
    QNetworkAccessManager networkMgr;

    connect(&networkMgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(requestUploadCyclingAnalyticsFinished(QNetworkReply*)));
    connect(&networkMgr, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit()));

    QUrl url = QUrl( "https://www.cyclinganalytics.com/api/me/upload" );
    QNetworkRequest request = QNetworkRequest(url);

    QString boundary = QVariant(qrand()).toString()+QVariant(qrand()).toString()+QVariant(qrand()).toString();

    TcxFileReader reader;
    QByteArray file = reader.toByteArray(context, ride->ride(), parent->altitudeChk->isChecked(), parent->powerChk->isChecked(), parent->heartrateChk->isChecked(), parent->cadenceChk->isChecked());

    // MULTIPART *****************

    QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
    multiPart->setBoundary(boundary.toLatin1());

    request.setRawHeader("Authorization", (QString("Bearer %1").arg(token)).toLatin1());

    QHttpPart activityNamePart;
    activityNamePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"title\""));
    activityNamePart.setBody(QString(parent->titleEdit->text()).toLatin1());

    QHttpPart dataTypePart;
    dataTypePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"format\""));
    dataTypePart.setBody("tcx");

    QHttpPart filenamePart;
    filenamePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"filename\""));
    filenamePart.setBody("file.tcx");

    QHttpPart filePart;
    filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"data\"; filename=\"file.tcx\"; type=\"text/xml\""));
    filePart.setBody(file);

    multiPart->append(activityNamePart);
    multiPart->append(filenamePart);
    multiPart->append(dataTypePart);
    multiPart->append(filePart);

    QScopedPointer<QNetworkReply> reply( networkMgr.post(request, multiPart) );
    multiPart->setParent(reply.data());

    parent->progressBar->setValue(parent->progressBar->value()+30/parent->shareSiteCount);
    parent->progressLabel->setText(tr("Upload ride... Sending to CyclingAnalytics"));

    eventLoop.exec();
}
Example #26
0
void MainWindow::tooOldButtonClicked()
{
	QNetworkRequest postRequest(QUrl("http://bash.im/quote/" + QString::number(currentID)));
	postRequest.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
	QNetworkAccessManager *postManager = new QNetworkAccessManager(this);
	postManager->post(postRequest, "/bayan");

	loadNewPage();
	delete postManager;
}
/*
  make a multipart HTTP POST at the following path "/restapi/public/activities/upload.json"
  on selflloops web site using SSL.
  The requested parameters are:
   - "email" the email of a valid SelfLoops account
   - "pw" the password
   - "tcxfile" the zipped TCX file (example: test.tcx.gz).

   On success, response message contains a JSON encoded data
   with the new "activity_id" created.
   On error, SelfLoops response contains a JSON encoded data with "error_code" and "message" key.
*/
void
SelfLoopsUploader::requestUploadSelfLoops()
{
    parent->progressLabel->setText(tr("Upload ride to Selfloops..."));
    parent->progressBar->setValue(parent->progressBar->value()+10/parent->shareSiteCount);

    QEventLoop eventLoop;
    QNetworkAccessManager networkMgr;

    connect(&networkMgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(requestUploadSelfLoopsFinished(QNetworkReply*)));
    connect(&networkMgr, SIGNAL(finished(QNetworkReply *)), &eventLoop, SLOT(quit()));

    QUrl url = QUrl( "https://www.selfloops.com/restapi/public/activities/upload.json" );
    QNetworkRequest request = QNetworkRequest(url);

    QString boundary = QVariant(qrand()).toString()+QVariant(qrand()).toString()+QVariant(qrand()).toString();

    // The TCX file have to be gzipped
    TcxFileReader reader;
    QByteArray file = zCompress(reader.toByteArray(context, ride->ride(), parent->altitudeChk->isChecked(), parent->powerChk->isChecked(), parent->heartrateChk->isChecked(), parent->cadenceChk->isChecked()));

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

    // MULTIPART *****************

    QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::MixedType);
    multiPart->setBoundary(boundary.toLatin1());

    QHttpPart emailPart;
    emailPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"email\""));
    emailPart.setBody(username.toLatin1());

    QHttpPart passwordPart;
    passwordPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"pw\""));
    passwordPart.setBody(password.toLatin1());

    QHttpPart filePart;
    filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"tcxfile\"; filename=\"myfile.tcx.gz\"; type=\"application/x-gzip\""));
    filePart.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-gzip");
    filePart.setBody(file);

    multiPart->append(emailPart);
    multiPart->append(passwordPart);
    multiPart->append(filePart);

    QScopedPointer<QNetworkReply> reply( networkMgr.post(request, multiPart) );
    multiPart->setParent(reply.data());

    parent->progressBar->setValue(parent->progressBar->value()+30/parent->shareSiteCount);
    parent->progressLabel->setText(tr("Upload ride... Sending to Selfloops"));

    eventLoop.exec();
}
Example #28
0
void ApiRequest::start()
{
    qDebug() << "ApiRequest::start()";

    QNetworkAccessManager *nm = new QNetworkAccessManager();

    qnr = new QNetworkRequest(url + urlext());
    qnr->setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");

    reply = nm->post(*qnr, data.toString().toUtf8());
    connect(reply, SIGNAL(finished()), this, SLOT(readResponse()));
}
Example #29
0
HttpThread::HttpThread(string const & url,
                       downloader::IHttpThreadCallback & cb,
                       int64_t beg,
                       int64_t end,
                       int64_t size,
                       string const & pb)
  : m_callback(cb), m_begRange(beg), m_endRange(end), m_downloadedBytes(0), m_expectedSize(size)
{
  QUrl const qUrl(url.c_str());
  QNetworkRequest request(qUrl);

  // use Range header only if we don't download whole file from start
  if (!(beg == 0 && end < 0))
  {
    if (end > 0)
    {
      LOG(LDEBUG, (url, "downloading range [", beg, ",", end, "]"));
      QString const range = QString("bytes=") + QString::number(beg)
                            + '-' + QString::number(end);
      request.setRawHeader("Range", range.toUtf8());
    }
    else
    {
      LOG(LDEBUG, (url, "resuming download from position", beg));
      QString const range = QString("bytes=") + QString::number(beg) + '-';
      request.setRawHeader("Range", range.toUtf8());
    }
  }

  // set user-agent with unique client id only for mapswithme requests
  if (url.find("mapswithme.com") != string::npos)
  {
    static string const uid = GetPlatform().UniqueClientId();
    request.setRawHeader("User-Agent", uid.c_str());
  }

  /// Use single instance for whole app
  static QNetworkAccessManager netManager;

  if (pb.empty())
    m_reply = netManager.get(request);
  else
  {
    request.setRawHeader("Content-Type", "application/json");
    request.setRawHeader("Content-Length", QString::number(pb.size()).toLocal8Bit());
    m_reply = netManager.post(request, pb.c_str());
  }

  connect(m_reply, SIGNAL(metaDataChanged()), this, SLOT(OnHeadersReceived()));
  connect(m_reply, SIGNAL(readyRead()), this, SLOT(OnChunkDownloaded()));
  connect(m_reply, SIGNAL(finished()), this, SLOT(OnDownloadFinished()));
  LOG(LDEBUG, ("Connecting to", url, "[", beg, ",", end, "]", "size=", size));
}
Example #30
0
void ServiceClient::Login(QString username, QString password){
    QNetworkAccessManager* manager = new QNetworkAccessManager();
    connect(manager, SIGNAL(finished(QNetworkReply*)),
            this, SLOT(loginReplRead(QNetworkReply*)));
    QNetworkRequest req(QUrl(GlobalSetting::serviceURI().
                             append("/Login")));
    QJsonObject obj;
    obj.insert("Email", username);
    obj.insert("Password", password);

    manager->post(req, QJsonDocument(obj).toBinaryData());
}