Qt学习笔记一:Qt使用network模块进行http请求时获取response中的http状态码
时间: 2024-03-11 21:49:58 浏览: 354
在Qt中使用network模块进行http请求时,可以通过QNetworkReply对象的attribute()方法获取response中的http状态码。具体实现如下:
```c++
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
QNetworkRequest request;
request.setUrl(QUrl("http://example.com"));
QNetworkReply *reply = manager->get(request);
connect(reply, &QNetworkReply::finished, [=](){
if(reply->error() == QNetworkReply::NoError){
QVariant statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
if(statusCode.isValid()){
int code = statusCode.toInt();
qDebug() << "Http status code:" << code;
}
}
reply->deleteLater();
});
```
在上述代码中,首先创建了一个QNetworkAccessManager对象,并使用get()方法发送一个http请求。在QNetworkReply对象的finished()信号触发时,判断是否有错误发生,如果没有错误,就通过attribute()方法获取http状态码,并将其打印出来。
需要注意的是,QNetworkRequest::HttpStatusCodeAttribute是一个枚举类型,表示http状态码对应的属性。在使用attribute()方法时,需要将该枚举类型作为参数传递给它。
阅读全文