Qt 网络编程get不到数据

疯狂java杰尼龟
优质创作者: Java技术领域
2020-12-22 05:20:15
token是post来的,根据url和token来get数据,这里url和token都是没有问题的,返回结果也是200,但是get后的systeminfo为空!
请问是哪里出了问题啊。。

找到一种解决方案说是 加了这句 request.setAttribute(QNetworkRequest::FollowRedirectsAttribute,true); 可以重定向
但是还是没用。。。


void AddId::getCriticalMsg(QString url,QString token)
{
qDebug() << "1";
//构建请求对象
QNetworkRequest request;

// 发送https请求前准备工作;
QSslConfiguration config;
QSslConfiguration conf = request.sslConfiguration();
conf.setPeerVerifyMode(QSslSocket::VerifyNone);
conf.setProtocol(QSsl::TlsV1SslV3);
request.setSslConfiguration(conf);
//request.setUrl(QUrl("https://www.baidu.com"));
request.setUrl(QUrl(url));
qDebug() << "2";
//set url and xAuthToken

//设置请求头
// request.setHeader(QNetworkRequest::ContentTypeHeader,"application/json");
request.setRawHeader(QByteArray("X-Auth-Token"),QByteArray(token.toUtf8()));

qDebug() << "3";
//发送请求

QNetworkReply *systeminfo = manager->get(request);
request.setAttribute(QNetworkRequest::FollowRedirectsAttribute,true);
qDebug() << "4";

qDebug() << systeminfo->readAll();
...全文
369 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是的 你的理解没有错 网络编程里 提前绑定了connect(manager, &QNetworkAccessManager::finished, this, &AddId::receiveReply); 相应结束后就停止了
  • 打赏
  • 举报
回复
快来人!!!!
大白123zz 2020-12-23
  • 打赏
  • 举报
回复
引用 2 楼 擒拿一只咸鱼干 的回复:
加上这三句话就可以了~ //可以开启一个局部的事件循环,等待响应,程序界面将不会响应用户操作(界面被阻塞),如果不加这段代码,会导致先执行QNetworkReply *systeminfo = manager->get(request);之后的语句,然后才去执行reply,而且reply会变空 QEventLoop eventLoop; connect(manager, &QNetworkAccessManager::finished, &eventLoop, &QEventLoop::quit); eventLoop.exec(); 有没有要分的!
你这程序是阻塞等待回复,不完善,还有加上定时器,否则如果没回复就会死等
赵4老师 2020-12-23
  • 打赏
  • 举报
回复
谁跟分有仇啊!
  • 打赏
  • 举报
回复
加上这三句话就可以了~ //可以开启一个局部的事件循环,等待响应,程序界面将不会响应用户操作(界面被阻塞),如果不加这段代码,会导致先执行QNetworkReply *systeminfo = manager->get(request);之后的语句,然后才去执行reply,而且reply会变空 QEventLoop eventLoop; connect(manager, &QNetworkAccessManager::finished, &eventLoop, &QEventLoop::quit); eventLoop.exec(); 有没有要分的!

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧