Qt5 NetworkReply HttpStatusCode QVariant(Invalid)

问题描述 投票:0回答:1

我正在使用下面的代码发出http请求:

QNetworkAccessManager* mg = new QNetworkAccessManager();
QNetworkRequest request("http://127.0.0.1:9090" + "/configs");
request.setRawHeader("Content-Type", "application/json");
QNetworkReply* reply = mg->sendCustomRequest(request, "PUT", "....some json....");
qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
}

远程服务器确实执行了请求并回复了204代码。我使用了wireshark来捕获并确保它已经回复了204 No Content。但是,输出为QVariant(Invalid)toInt输出为0。我试图将PUT更改为GET,但仍然无法正常工作。

qt qt5 qnetworkaccessmanager qnetworkreply qnetworkrequest
1个回答
0
投票

即使没有发出请求,您也正在分析状态,因此结果为空是有效的,您应该做的是在发出完成信号时对其进行分析:

QNetworkReply* reply = mg->sendCustomRequest(request, "PUT", "....some json....");
connec(reply, &QNetworkReply::finished, [reply](){
    qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
});
© www.soinside.com 2019 - 2024. All rights reserved.