シンプルなファイルダウンローダーを作ろうとしています。URL をダウンロードするためのコード セグメントは次のとおりです。「 http://stackoverflow.com 」のような単純な URL を取得しようとすると、このコードは正常に機能します。しかし、リダイレクト
する 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();
}
このエラーのため、networkReplyオブジェクトはヘッダーをまったく受け取りません。
私の必要性は、このメソッドで HTTP ステータス コードを読み取ることです。QNetworkReply::attribute(QNetworkRequest::HttpStatusCodeAttribute)
ヘッダーが取得できないため、HTTP ステータス コードを読み取ることができません。
誰が何が起こっていると言うことができますか?
前もって感謝します!:)