我想向服务器发送一个发布请求,我做这样的事情:
function makePost(){
QNetworkAccessManager *networkManager = new QNetworkAccessManager();
qDebug()<<"1";
bool ret = connect(networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(serviceRequestFinished(QNetworkReply*)));
qDebug()<<"2: " <<ret;
QUrl serviceUrl = QUrl("http://someurl/json");
QNetworkRequest request(serviceUrl);
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
QString content = "";
networkManager->post(request, content.toUtf8());
}
但是插槽serviceRequestFinished()
根本没有被调用!我必须提到,我使用 Wireshark 来跟踪请求/响应,我发现请求(发布)正在发送并且服务器返回状态200
(ok)的响应。ret
变量也返回true
,即信号和槽之间的连接成功。你们中的任何人都知道为什么这不起作用吗?谢谢!:)
编辑
导致问题的代码 - 请参阅我的答案 - 是这样的:
{
MyObjectWithSlot obj;
obj.makePost();
}