我需要获取网站的HTML状态代码 今天我只是对域进行简单的get请求,然后我获得状态代码作为响应的一部分,还有站点index.html内容。
pNetworkManager = new QNetworkAccessManager(this);
reply = pNetworkManager->get(request);
QVariant vStatusCodeV = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
QVariant redirectionTarget = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
data=reply->readAll();
这个最后一个功能我想避免,如果可以避免, 有没有办法只获得域状态代码?
答案 0 :(得分:2)
也许您可以发送HEAD请求而不是GET请求?
这不是Qt /客户端特定的解决方案,但是当您不需要内容时,HTTP协议推荐的方法,但只是想获取请求通常会产生的标头,例如为了验证页面是否存在。
我想这可以通过QNetworkAccessManager使用head() method
来完成答案 1 :(得分:1)
我同意@ shevron的回答,但如果您与之通信的网站不够“聪明”,无法实施HEAD
请求,您仍然可以避免readAll()
来电。
QByteArray line = reply->readLine(); //< eg "HTTP/1.0 200 OK"
QList<QByteArray> chunks = line.split(' ');
QString statusCode = chunks[1];
这应该避免readAll()
的内存开销。