我正在尝试制作一个简单的文件下载器。这是我下载 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 状态代码,因为我没有得到标题。
任何人都可以说发生了什么事吗?
提前致谢!:)