m_request.setUrl(pDownloadInfo->url);
m_preply = pManager->get(m_request);
QObject::connect(m_preply, SIGNAL(error(QNetworkReply::NetworkError)),
this, SLOT(DownloadError(QNetworkReply::NetworkError)));
QObject::connect(m_preply, SIGNAL(finished()), this, SLOT(ReadyRead()));
我使用qt5.0并使用QNetworkAccessManager下载http文件。 当我输入错误的网址时,我无法得到错误信号, 但是当我输入正确的网址时,我可以得到完成的信号。
这个问题是什么原因?
答案 0 :(得分:0)
QNetworkReply
错误信号仅适用于网络层而非协议层。这意味着它将报告在建立与HTTP服务器的连接期间发生的所有错误。建立连接后,如果HTTP服务器正确处理,则不会收到error
信号。即使你从4xx或5xx状态代码输入产生的HTTP错误的网址仍然是你的回复将在服务器处理你的请求时没有错误(网络错误)结束。
如果您要处理HTTP错误,则必须使用QNetworkReply::attribute方法的回复属性,并将其与使用error
信号