问题标签 [qnetworkreply]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1282 浏览

windows - 仅在已部署的 Qt 应用程序上出现未知的网络相关错误

我创建了一个通过 http 协议下载文件的下载器应用程序。我使用 QNetworkAccessManager/QNetworkReply/QNetworkRequest 类来实现这一点。

QNetworkReply 文档中列出了几个错误代码——其中一个是错误代码 99,它是“未知的网络相关错误”。

在我的开发机器上,每当我使用应用程序启动下载时,它都会顺利下载,并且我没有收到任何错误代码 99。

当我部署我的应用程序并在另一台没有安装 Qt 的 PC 上测试它时,当我开始下载时,我立即收到错误代码 99;然而,使用 QNetworkAccessManager 类的其他函数工作得很好,即使在环境中没有 Qt 的 PC 上(例如 http POST 方法)。

我还使用与 OS X 完全相同的代码部署了这个应用程序,并且它的部署版本没有得到任何错误代码 99,并且一切正常。

在没有 Qt 开发环境的 PC 系统上出现未知的网络相关错误是否有任何原因?

我检查了dependency-walker 的所有依赖项等。我有点不知所措,不知道如何继续。

0 投票
1 回答
848 浏览

c++ - Qt QNetworkAccessManager 发出完成信号的长时间延迟

我使用 QNAM 来处理使用 ftp 协议的上传。整个过程有效,但我有一个奇怪的行为:

这是我的方法:

当我上传文件时,会发出 uploadProgress :

输出 0/x 直到 x/x 。然后需要很长时间,可能长达 20 秒才能发出完成的信号。为什么会出现这种延迟?

我尝试忽略完成的信号并在进度到达时自己发出信号,sent==total 但另一端的文件已损坏。(它并没有真正损坏,因为我只发送 jpg,生成的文件只有上半部分 jpg。很大一部分只是灰色。)

我想为我的用户提供一个进度条,其中 100% 真正意味着该过程已完成。上传 5 秒,然后以 100% 的速度停留 20 秒并不是很好。

0 投票
3 回答
11377 浏览

html - Qt - 获取托管在 Internet 上的网页的源代码(HTML 代码)

我想获取网页的源代码(HTML),例如 StackOverflow 的主页。

这是我到目前为止编码的内容:

但是什么也没有发生!当我尝试获取html字符串的值时,它是空的(“”)。

那么该怎么办?我正在使用 Qt 5.3.1。

0 投票
1 回答
2068 浏览

qt - QNetworkAccessManager - 完成信号永远不会触发插槽

我正在尝试使用QNetworkAcessManager获取 url 的来源.. 但似乎信号槽复合体有问题!

onFinished(QNetworkReply*)的永远不会被触发!为什么?


编辑:

正如“Oleg Shparber”所说,这是我的新代码(也不起作用):

0 投票
2 回答
2854 浏览

c++ - Mac - 使用 Qt 检测网络断开连接

我正在编写一个应用程序来使用 Qt 下载文件。代码片段是

它工作正常,但在 Mac 中的某些情况下,下载会永久卡住而没有错误回调。这些情况是

  1. 拔出 LAN(互联网)电缆并在 20 秒内快速插入
  2. 在 10-20 秒内从有线切换到 WiFi,反之亦然

文件下载卡在上述场景中。不过,这个问题的频率是 20 次(5%)。为了缓解这种情况,我编写了一个变通方法代码来使用 TCP 套接字检查网络是启动还是关闭,并每 30 秒轮询一次。

它在一定程度上运作良好。但即便如此,如果在 30 秒内发生“LAN 卡拔出并重新插入”,下载又会卡住。因此,此解决方法无法完全解决我的问题。以非常短的时间间隔进行轮询看起来不是一个合适的解决方案,因为对于任何更短的时间间隔,都可能存在竞争条件。

我被困在这里寻找一种方法来解决这个下载卡在中间的问题。你们中的任何人都可以帮助找出一种在网络中断时立即通知下载的方法吗?

我使用的 Qt 版本是 5.3.1,Mac OS 是 10.9。

0 投票
1 回答
331 浏览

c++ - 使用 QNetworkReply,我如何发布文件,然后从服务器接收转换后的文件?

QNetworkReply我可以使用, QNetworkAccessManager,QNetworkRequest等将Qt 中的文件发布到服务器。该服务器转换文件并将其返回。我如何得到那个吐回的文件?我是否需要以某种方式找到从标头返回的文件的 url,然后QNetworkAccessManager对其发出获取请求?或者我可以以某种方式从现有QNetworkReply信号中获取它并将其写入文件吗?

0 投票
1 回答
2442 浏览

c++ - 如何从 QNetworkReply 读取内容(http 响应正文)

我正在使用 qt5.3,在发布之前我搜索了很多。

我想从中读取数据QNetworkReply。我有一个QWebView并且我还需要读取 http 响应来QWebView显示网页。我需要的只是记录网页内容或对 http 帖子的任何响应。

问题是QNetworkReply只能读取一次的东西。

  1. 如果我readAll()在选择readyRead()信号时打电话,我会得到完整的数据。但它会被清除所以QWebView什么都不显示(它不会得到任何回复数据)。

  2. 或者如果我选择finished()信号,因为数据已经被QWebView(或QNetworkAccessManager)读取,如果我readAll()在这里调用,我什么也得不到。是否有某个地方QNetworkReply、经理或任何班级存储我仍然可以读取的数据?

在 #1 中,如果我调用peek(). 此功能不会清除响应数据。但是如果响应体很大,它就行不通了。这QNetworkReply是一个顺序的东西,我既不能知道它的数据,也不能比缓冲的读得更远。

我不知道如何处理这个......

我只想监视和记录在我的QWebView...上提出的任何请求的请求和响应正文。

编辑:请注意,我要从响应中读取的数据高达 1MB,因此如果不进一步阅读就无法窥视整个数据。

0 投票
0 回答
611 浏览

qt - QNetworkAccessManager 返回空结果

我在 qnetworkaccessmanager 上苦苦挣扎了一段时间。我用谷歌搜索了很多,但我没有找到解决方案。

我正在创建一个使用 qaccessmanager 与休息服务器交谈的客户端。QNetworkReply 没有返回任何结果。服务器正常工作,但客户端没有返回结果。最重要的是,服务器被调用了 3 次,有时服务器崩溃了。希望有人能弄清楚出了什么问题。我附上客户端代码。

我尝试了不同的方法,例如连接 networkaccessmanager、qnetworkreply 等的完成信号,但所有这些最终都会给出相同的错误“连接已关闭”或 readAll bytearray 为空。

提前致谢 问候 Rejo

0 投票
2 回答
330 浏览

qt - How to get translation from google translate without application interruption?

Here is a function that get the translation from google translate and return the result:

But as you see there's a do while loop that stops application until reply->isFinished(), and when I use SIGNAL(finished()) from QNetworkReply instead of do while loop, that's not gonna work!

How can I do that without any interruption?

0 投票
1 回答
110 浏览

vb.net - Visual Basic 服务器和 Qt 客户端(QNetworkReply 完成较新的发布)

我正在为一件(可能)非常愚蠢的事情而发疯......即使在服务器发送数据之后,QNetworkReply 完成的信号也会更新。

我有一个非常简单的 vb 服务器

当我使用 qt 进行调用时,返回一个空字符串。并引发错误“远程服务器在接收和处理整个回复之前过早地关闭了连接”

在客户端请求代码下方

有人可以帮我吗?