Я хочу отправить пост запрос на сервер, и я сделать что-то вроде этого:Слот не вызывается для сигнала закончил из 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 для отслеживания запроса/ответа, и я обнаружил, что запрос (сообщение) отправляется, и сервер возвращает ответ со статусом 200
(ok). Также переменная ret
возвращает true
, то есть соединение между сигналом и слотом было успешно выполнено. У любого из вас есть идея, почему это не работает? Спасибо :)
EDIT
Код, который вызывает проблему - см мой ответ - это:
{
MyObjectWithSlot obj;
obj.makePost();
}
Это все ваш код? У вас нет CONNECT (...) для подключения сигнала к слоту? – PureW
Если вы прочтете код, вы увидите его там! Благодаря! :) –