мне нужно получить html коды статуса сайтов
сегодня я просто делаю простой запрос на получение домена, а затем я получаю код статуса как часть ответа, а также содержимое сайта 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();
эту последнюю функцию я бы хотел избежать, если ее можно избежать,
есть ли способ получить только код статуса домена?
Я согласен с ответом @ shevron, но если сайт, с которым вы общаетесь, недостаточно «умен» для реализации HEAD
запрос, вы все еще можете избежать readAll()
вызов.
QByteArray line = reply->readLine(); //< eg "HTTP/1.0 200 OK"QList<QByteArray> chunks = line.split(' ');
QString statusCode = chunks[1];
Это должно избежать использования памяти readAll()
,
Может быть, вы можете отправить запрос HEAD вместо запроса GET?
Это не решение, специфичное для Qt / клиента, а подход, рекомендованный протоколом HTTP, когда вам не нужно содержимое, а вы просто хотите получить заголовки, которые обычно генерирует запрос, например, для проверки того, что страница существует.
Я полагаю, это можно сделать с помощью QNetworkAccessManager, используя метод head ()