我正在使用下面的代码发出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
,但仍然无法正常工作。
即使没有发出请求,您也正在分析状态,因此结果为空是有效的,您应该做的是在发出完成信号时对其进行分析:
QNetworkReply* reply = mg->sendCustomRequest(request, "PUT", "....some json....");
connec(reply, &QNetworkReply::finished, [reply](){
qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
});
更新:
connec(mg, &QNetworkAccessManager::finished, [](QNetworkReply *reply){
qDebug() << reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
});