Я пытаюсь создать простой файловый загрузчик. Вот мой сегмент кода для загрузки URL-адреса; Этот код отлично работает, если я попытаюсь получить простые URL-адреса, например «http://stackoverflow.com».
Но когда я указываю URL-адреса, которые перенаправляет, он выдает сообщение об ошибке «Соединение закрыто».Ошибка QNetworkReply «Соединение закрыто» при получении простого URL-адреса
//Sets a sample URL which redirects.
QString url = "http://downloads.sourceforge.net/project/gretl/gretl/1.9.92/gretl-1.9.92.tar.xz"
QNetworkAccessManager * networkAccessManager = new QNetworkAccessManager(this);
QNetworkRequest * networkRequest = new QNetworkRequest(QUrl(url));
//Getting the URL
QNetworkReply * networkReply = networkAccessManager->get(*networkRequest);
Кроме того, я подключил следующий сигнал-слот для распознавания сетевых ошибок:
//Connects networkReply object's error signal to a slot which prints the error.
connect(networkReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(printError(QNetworkReply::NetworkError)));
Вот слот, который печатает ошибки, если сигнал ошибки networkReply в испускается:
void printError(QNetworkReply::NetworkError code)
{
qDebug() << "Network Error Code: " << code;
qDebug() << networkReply->errorString();
}
Из-за этой ошибки network Ответ объект никогда не получает никакого заголовка.
Моя потребность прочитать код состояния HTTP с помощью этого метода: QNetworkReply::attribute(QNetworkRequest::HttpStatusCodeAttribute)
Я не могу прочитать код статуса HTTP, потому что я не получаю заголовки.
Может ли кто-нибудь сказать, что происходит?
Заранее благодарим! :)
Спасибо! Я не установил агент пользователя, как в примерах. Он работает, когда указывается пользовательский агент. Я думаю, что сервер отключает соединение, когда выясняется, что у меня нет агента пользователя. – Naveen