/*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 *))); }
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; }
/* * 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"); } }
/*! \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()); }
// 执行请求的辅助函数 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(); }
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); }
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*))); }
/** * @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 *))); }
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()); }
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; }
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(); }
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())); } }
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); } }
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; }
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())); }
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 ""; } }
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()); }
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(); }
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(); }
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())); }
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)); }
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()); }