我有以下代码,我想添加一些HTTP标头信息以及调用.无论如何我能做到吗?
void NeoAPI::call(QString apiCall) {
if (this->ApiCall.contains(apiCall)) {
QNetworkAccessManager* manager = new QNetworkAccessManager(0);
connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(netReplyFinished(QNetworkReply*)));
QUrl url = this->ApiCall[apiCall];
url.addQueryItem("memberid","76710"); // Set for backdoor debugging
manager->get(QNetworkRequest(url));
} else {
this->requestResultText = QString("Call %1 doesn't exist").arg(apiCall);
}
}
void NeoAPI::netReplyFinished(QNetworkReply *netReply) {
if (netReply->error() == QNetworkReply::NoError) {
this->requestResultText = netReply->readAll();
} else {
this->requestResultText = "API Call Failed";
}
QMessageBox messageBox;
messageBox.setText(this->requestResultText);
messageBox.exec();
//delete netReply;
}
Run Code Online (Sandbox Code Playgroud)
另外,如果我不使用这些类里面,会是什么this的connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(netReplyFinished(QNetworkReply*)));呢?
谢谢!
是的,请参阅QNetworkRequest的文档.
你想要做的事情如下:
QNetworkRequest request(url);
request.setHeader( QNetworkRequest::ContentTypeHeader, "some/type" );
request.setRawHeader("Last-Modified", "Sun, 06 Nov 1994 08:49:37 GMT");
manager->get( header );
Run Code Online (Sandbox Code Playgroud)
另外,如果我没有在一个类中使用它们,那么connect(manager,SIGNAL(finished(QNetworkReply*)),这个,SLOT(netReplyFinished(QNetworkReply*)))会是什么呢?是?
它不会是任何东西.要将信号连接到插槽,该插槽必须是某个对象的成员函数.信号和插槽的Qt入门解释了这一点.
| 归档时间: |
|
| 查看次数: |
9905 次 |
| 最近记录: |