直通车

  • 问题描述
  • 原因
  • 解决
  • 说一句话

问题描述

Qt5。用QNetworkAccessManager 拉取某网站数据。代码基本正确;QNetworkReply.error返回0,表明无错误发生;但readAll返回空字符串。

注意,此情况多出现在Qt5及以下。

原因

仅针对我的情况。

RedirectPolicy(重定向规则)设置错误:
该网站发生了重定向,而QNetworkAccessManager 默认的RedirectPolicy是:

Constant Value Description
QNetworkRequest::ManualRedirectPolicy 0 Default value: not following any redirects

来自Qt文档。大意:不接受任何重定向。

因此,此时的QNetworkReply正常拉取了网站,但获取不到任何数据。

解决

手动设置RedirectPolicy。函数原型为:

void QNetworkAccessManager::setRedirectPolicy(QNetworkRequest::RedirectPolicy policy)
来自Qt文档。

可有可无的例子:

QNetworkAccessManager NetworkAccessManager;
NetworkAccessManager.setRedirectPolicy(QNetworkRequest::NoLessSafeRedirectPolicy);
/* 以下省略 */

以下为所有的可接受参数:

Constant Value Description
QNetworkRequest::ManualRedirectPolicy 0 Default value: not following any redirects.
QNetworkRequest::NoLessSafeRedirectPolicy 1 Only “http”->“http”, “http” -> “https” or “https” -> “https” redirects are allowed. Equivalent to setting the old FollowRedirectsAttribute to true
QNetworkRequest::SameOriginRedirectPolicy 2 Require the same protocol, host and port. Note, http://example.com and http://example.com:80 will fail with this policy (implicit/explicit ports are considered to be a mismatch).
QNetworkRequest::UserVerifiedRedirectPolicy 3 Client decides whether to follow each redirect by handling the redirected() signal, emitting redirectAllowed() on the QNetworkReply object to allow the redirect or aborting/finishing it to reject the redirect. This can be used, for example, to ask the user whether to accept the redirect, or to decide based on some app-specific configuration.

来自Qt文档

说一句话

我起初用Qt6时从未有这个问题,后来由于某些原因换了Qt5,就遇到了这个问题。想来应该是Qt6中,把RedirectPolicy的默认值设成了NoLessSafeRedirectPolicy。

Qt QNetworkReply 无数据 readAll返回空字符串 无错误代码 error返回0相关推荐

  1. 20190501-编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串...

    题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow ...

  2. LeetCode4_编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。(解决方案:横向扫描、 纵向扫描 、分治 二分查找 、秀儿操作之排序比较头尾)

    题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&q ...

  3. asp 去除最后一个逗号为空字符串的代码

    asp中怎么替换最后一个逗号为空字符串  举例 aaa,bbb,ccc,eee, 这个字符串 怎么让最后一个逗号变没,其他的不变啊  问题补充:举例 aaa,bbb,ccc,eee, 这个字符串 怎么 ...

  4. python下列数据中不属于字符串的是_下列数据中,不属于字符串的是( )。 (6.0分)_学小易找答案...

    [单选题]黄酮苷和黄酮苷元一般均能溶解的溶剂是 [其它]跨境物流与海外仓操作 [单选题]在python中,下列流程控制语句没有的是 [单选题]采用碱溶解酸沉淀法提取芦丁,用石灰乳调PH时,应调至 [多 ...

  5. spring字符串判空_spring框架返回json数据null转空字符串

    spring项目中,前端获取服务器返回的json时,里面有null值,如果没做校验,就会导致js报错,但是不推荐每个返回的地方手动处理,而是应该在框架中统一配置. 前面关于json日期格式化的文章中, ...

  6. php curl get 返回空,php-cURL从有效url返回空输出-没有错误报告

    如果您仅在浏览器中输入网址,则可以看到两者都起作用,即使没有javascript也可以使用cdon,它们是否以某种方式阻止了cURL? 我正在尝试制作一个刮刀来在线上使合法电影受益,这将使它们受益匪浅 ...

  7. 给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和成绩([0,100]区间内的整数),要求计算他们的平均成绩,并顺序输出平均线以下的学生名单

    输入格式: 输入在一行中给出正整数N(≤10).随后N行,每行给出一位学生的信息,格式为"学号 姓名 成绩",中间以空格分隔. 输出格式: 首先在一行中输出平均成绩,保留2位小数. ...

  8. java页面后退代码,JS后退一页, JS返回上一页代码, JS返回下一页,JS返回第几页,JS页面跳转...

    Javascript 返回上一页: 1. history.go(-1), 返回两个页面: history.go(-2); 2. history.back(). 3. window.history.fo ...

  9. c++ 返回空对象_python中file对象的常用方法

    open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError.(使用 open() 方法 ...

最新文章

  1. The UVALIVE 7716 二维区间第k小
  2. c++ 图片验证码识别_基于tensorflow 实现端到端的OCR:二代身份证号识别
  3. MongoDB集群之分片技术应用 —— 学习笔记
  4. rabbitmq 集群数据存储与单点故障
  5. docker容器 eureka 集成_微服务:基于 Docker 的微服务架构之分布式企业级实践参考...
  6. 成功解决xgboost.core.XGBoostError: b‘[14:48:08] 0 feature is supplied. Are you using raw Booster inter
  7. 移动重定位表到新增节
  8. keepalived(7)——操作脚本
  9. spring 4.3.x_如何在Spring 3.x中使用事件
  10. c语言中数据存储在文件中,急求如何将下列C语言程序数据存储到文件中?
  11. vue index.php,如何解决vue $index报错问题
  12. POJ 3468 A Simple Problem with Integers(线段树区间更新)
  13. 我的2006总结:一个结束和一个开始
  14. 6自由度机械臂建模与仿真
  15. 错过校招_我们在用户测试中容易错过的事情
  16. Bug趣闻:在程序员崩溃的边缘试探……
  17. [附源码]Node.js计算机毕业设计高校运动会管理系统Express
  18. hdc bind error : The HTTP response from the server [502] did not permit the HTTP upgrade to WebSocke
  19. 数码相机删除照片怎么恢复?
  20. c语言编写的鼠标键盘录制程序,用C语言写的鼠标驱动程序

热门文章

  1. 【CGAL_网格处理】Isotropic Remeshing均匀化网格
  2. Office异常卡顿可以通过禁用硬件图形加速解决
  3. 01、【电脑维修】常用的快捷键及指令工具(持续更新)
  4. 中国的高速公路和美国接轨了?
  5. 中国现在距离《流浪地球2》里的技术还差多远?
  6. 计算机英语职称考试成绩查询系统,英语等级考试成绩查询入口
  7. JsonArray取值
  8. STM32F746G-Disco和Stm32Fdis-Cam(OV9655)组合成USB网络摄像头
  9. 血钻野燕麦的好处 血钻野燕麦的功效与作用
  10. php查询数据库无数据判断,php无数据库的内容查询代码 读内容部分