落落大方的落落
2017-04-13 12:57
采纳率: 100%
浏览 2.2k
已采纳

关于QT networkmanager get后接受不到数据

void MainWindow::getimage()
{

network_request.setUrl(QUrl("http://192.168.1.131/logined/parkingRecord/download.action?parkingRecord.id=65382"));//65382
reply4 = networkmanager->get(network_request);
connect(reply4,SIGNAL(waitForReadyRead()),this,SLOT(replyFinished4()));
connect(networkmanager,SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinished5(QNetworkReply *)));

}
QMessageBox::warning(this,NULL,"243");
QVariant status_code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
if(status_code == 200)
QMessageBox::warning(this,NULL,"true");
else
{
//reply4 = networkmanager->get(network_request);
QMessageBox::warning(this,NULL,"false");
}
QMessageBox::critical(this,NULL,status_code.toString());
if(reply->error() == QNetworkReply::NoError)
{
//download_Btn->setText("success");
QByteArray bytes = reply->readAll(); //获取字节
QString result(bytes); //转化为字符串
QMessageBox::warning(this,NULL,result);
QImage image;
image.loadFromData(bytes);
image.save("E:/NetParkingClient/lib/b.png");

}

}

    这里试过了俩种方式,一种是用get返回值,一种是直接用networkaccessmanager,但是都是取不到数据,在使用后者的时候,status_code的值为302,然后再网上查的时候发现302对应的是请求的资源现在临时从不同的 URI 响应请求 导致图片下载不下来,然后我猜测可能是访问这个图片的时候URL会跳成一个新的地址进行下载,所以我想问问各位大佬有没有什么好的解决方法。。。。
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 落落大方的落落 2017-04-14 01:47
    已采纳

    我知道了
    network_request.setAttribute(QNetworkRequest::FollowRedirectsAttribute,true);
    加上这句就可以啦
    自动重定向到跳转的页面

    已采纳该答案
    评论
    解决 2 无用
    打赏 举报

相关推荐 更多相似问题