當發送POST數據到服務器時,從Qt應用程序看起來一切正常,但HTTP部分的數據部分未發送。在Wireshark的POST數據包中可以看到正確的「Content-Length」值,但整個HTTP段的大小隻有大約226個字節(與POST數據大小無關)。QNetworkAccessManager不發送POST請求的數據部分
我找不到數據部分不發送的原因。任何想法?
應用程序正在控制檯中運行。下面是一個完整的源文件。
project.pro:
QT += widgets
QT -= gui
QT += network
CONFIG += c++11
TARGET = POSTrequest
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
main.cpp中:
#include <QObject>
#include <QApplication>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QUrl>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QNetworkRequest request(QUrl("http://www.server.com/index.php"));
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QNetworkAccessManager manager;
QNetworkReply *reply = manager.post(request, "a=aaaaaa");
QObject::connect(reply, SIGNAL(finished()), &a, SLOT(quit()));
return a.exec();
}
你可以發佈你的整個功能或主要在那裏,這是怎麼回事?經理可能會超出範圍或某事。以下是關於要發送的數據的內容:'數據必須打開才能讀取,並且必須保持有效,直到完成()信號發出此答覆。「......因此,在manager.post(...) ? –