首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QNetworkReply错误“连接关闭”时获得一个简单的网址

QNetworkReply错误“连接关闭”时获得一个简单的网址
EN

Stack Overflow用户
提问于 2014-10-06 13:55:31
回答 1查看 3.3K关注 0票数 0

我试着做一个简单的文件下载程序。这是我下载URL的代码段;如果我尝试获得像"http://stackoverflow.com“这样的简单URL,这段代码可以正常工作。

但是,当我指定重定向的URL时,它会抛出一个错误,说明“已关闭”.

代码语言:javascript
复制
//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);

此外,我还连接了以下信号槽以识别网络错误:

代码语言:javascript
复制
 //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错误信号时打印错误的插槽:

代码语言:javascript
复制
void printError(QNetworkReply::NetworkError code)
{
     qDebug() << "Network Error Code: " << code;
     qDebug() << networkReply->errorString();
}

由于此错误,networkReply对象从未收到任何标头。

我需要通过以下方法读取HTTP代码:QNetworkReply::attribute(QNetworkRequest::HttpStatusCodeAttribute)

我无法读取HTTP状态代码,因为我没有得到标头。

有人能说出发生了什么吗?

谢谢!)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-06 15:53:57

这里这里是处理这个场景的很好的例子--基本上您为完成信号添加了一个插槽,然后检查301和/或QNetworkRequest::RedirectionTargetAttribute属性的HTTP代码,看看您是否被重定向,如果是,则发出一个新的重定向链接请求。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26217860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档