我想发送POST请求到服务器,并且我做这样的事情:插槽不叫信号完成QNetworkAccessManager
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来跟踪请求/响应,并且我发现请求(post)正在发送,并且服务器返回状态为200
(ok)的响应。此外,ret
变量返回true
,即信号和时隙之间的连接已成功完成。你们中的任何人都有任何想法,为什么这不起作用?谢谢:)
编辑
导致该问题的代码 - 见我的答案 - 是这样的:!
{
MyObjectWithSlot obj;
obj.makePost();
}
那是你所有的代码吗?您没有CONNECT(...)将信号连接到插槽? – PureW 2015-02-10 13:48:26
如果您阅读代码,您会看到一个连接!谢谢! :) – 2015-02-11 09:47:35