问题标签 [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 投票
0 回答
1332 浏览

qt - QUrl 和 QNetworkReply 错误

在带有 MingW 的 Windows 8.1(64 位)上使用 Qt 5.4 32 位。

我遇到了一个奇怪的问题。考虑一下:

起初我的代码运行良好,但后来它停止工作(可能是由于我的更改,不确定它是什么),唯一的解决方法是当我明确地编写 url 时:

生成的 URL 完全相同,但由于某种原因,当我事先创建它并将其传递给 QNetworkReply 时,它不接受它:

例如,如果是这种情况,则不会产生任何结果。我觉得我在这里遗漏了一些非常明显的东西......

错误是:

谢谢!

0 投票
1 回答
450 浏览

qt - 即使 http 状态不是 200 OK,如何让 QNetworkReply 读取所有接收到的数据

我的问题如下:

时的响应QNetworkReply::readAll为空QNetworkReply::error() != NoError。这是正常的吗?

从以下文档QIODevice::readAll

该功能无法报错;返回空 QByteArray()值可能意味着当前没有数据可供读取,或者发生错误。

这意味着每次 http 状态与 200 OKQNetworkReply不同时,都无法提供其他标题作为响应的信息?

我有一个 Node+Express 服务器,它总是发送详细的 --json-- 描述,以防 http 状态不同于 200;我无法从 QNAM 上的 Qt 客户端获得此描述。

我该如何改变这种行为,我的意思是,QNetworkReply即使 http 状态不是 200 OK,也要读取所有接收到的数据?

Qt 版本为 5.3,操作系统 Win 7 64b。

0 投票
1 回答
2176 浏览

c++ - Qt:在QNetworkAccessManager中发送请求后连接信号

我正在检查一些使用 QNetworkAccessManager 的简单示例,我发现了这一点(假设管理器是 QNetworkAccessManager:

据我了解,对 manager->get 的调用将发送一个 GET 请求。但是,处理该请求的答案的插槽仅发送呼叫后才连接,这对我来说似乎没有意义。这是我的问题:

  • 请求完成后将插槽连接到信号不是问题吗?是否会发生请求已完成并在连接发生之前发出信号,因此信号被错过并且从未被相应的插槽处理的情况?

谢谢!

L.

更新:正如cyber_raj所指出的,这里已经回答了这个问题:Qt signal slot connection - QNetworkAccessManager

0 投票
1 回答
2112 浏览

qt5 - Qt5 QNetworkAccessManager 完成信号永远不会发出

我有一个非常令人困惑的问题。

我有一个从一些 ftp 服务器下载文件的简单项目。它工作得很好。

然后,我尝试将相同的代码实现到一个更大的项目中(第一个是控制台应用程序,第二个是 GUI,但我认为这不会改变任何东西..)。

在进行了一些调试之后,在我看来,finished()来自QNetworkAccessManager某种方式的信号永远不会被发出(或接收)。同样,完全相同的代码行作为一个单独的项目工作。

下载器.h

下载器.cpp

mainwindow.cpp(重要部分)

无法理解这一点。

欢迎任何帮助,

谢谢!

编辑>更多信息:调试器发布此>

网址,调试

条目:doDownload

退出:下载

0 投票
1 回答
307 浏览

qt - Qt5:下载文件而不保存到硬盘

我正在尝试在 Qt5 中下载文件,但下载后该文件不得位于硬盘上。澄清>我的应用程序将使用下载的文件来更新某些固件,我不希望下载的更新保留在用户的硬盘上,因为它可能会被盗。

所以,我试图QFileQNetworkReply*但没有将它保存到硬盘驱动器上的某个路径。

我正在使用下载文件QNetworkAccessManager并将数据存储到QNetworkReply. QFile我以前总是用with做 a QNetworkReply*,但现在我不能这样做了。

我找到了QTemporaryFile在使用文件后立即删除文件的类,但这仍然给用户留下了一些稍后查找文件的选项。

我尝试将其类型转换QNetworkReply*QFile,但未能使其正常工作,似乎 QFile 不能没有硬盘上的路径。

有谁知道如何做到这一点,以及如何做到这一点?

感谢大家。

0 投票
0 回答
558 浏览

c++ - QT NetworkManager 初始化和异步问题

首先,我想在创建此类时触发初始化过程。(已知主机的 DNS 查找,并在指定数量的插槽上与主机进行预握手 - 一旦经过测试,就不应进行硬编码) - 在创建所有类时,正在读取配置等。

其次,我想根据特定主机的允许(和打开)插槽允许并行请求发送。

坦率地说,以下代码存在多个问题;

  • 谷歌似乎在多个请求同时重定向到该主机似乎导致灾难性失败,当 x 数或请求触发完成信号时,该信号调用我的重定向检查并且第一个请求被重定向,我这样做似乎收到了第一个回复,并带有 x 条错误消息。
  • 出于同样的原因,我似乎无法从 httpFinished 调用 deleteLater()
  • 我找不到等待请求的槽号完成以启动队列中的下一个请求的方法

主要目标是使用单个网络类从多个 API 收集数据,这些请求可能会同时发生,也可能不会。还会像 POST 等一样发出另一个请求 -可能是 1 个类/API?

请注意,代码只是概念测试,仅用于测试目的,在修复后应进行清理,这根本不是我想要的工作方式。

星云.pro

网络.h

网络.cpp

主文件

请注意,我对高级 C++ 项目和 QT 还是很陌生,这个项目的一部分——但一旦松开,将用于我很棒的项目——是为了帮助我熟悉这些主题。

你能帮帮我吗,哦,光荣的陌生人?:)

问候; 独眼太空鱼

0 投票
1 回答
164 浏览

qt - Download an excel file as attachment using Qt browser

I am working on Qt browser(code taken from Qt Tab Browser Example). This Qt browser successfully downloads an image file, but not an excel/pdf file. I need to download an excel/pdf file as attachment on click of a button. Excel generation code at back-end uses PHPExcel to generate and finally saves it using 'php://output'. On browser side, when I read through QNetworkReply's 'readAll()' function, some encoded string '��ࡱ�' gets printed and nothing gets saved in QFile object, totally empty file.

How do I get the desired excel file from this encoded string ? Please, any help. It is Linux OS and I use LibreOffice if it matters.

0 投票
1 回答
154 浏览

qt - 用 PyQt5 网络访问管理器下载的文件去哪了?我该如何保存它?

没有指定要保存的文件,我创建了这个:

我提到的最后一个函数确实写入了接收到的字节。于是,就下载好了。如果我没有指定保存路径,它去了哪里?我怎样才能保存它?

0 投票
1 回答
456 浏览

c++ - 无法通过 QNetworkAccessManager 获取 url(结果与我在浏览器中看到的不同)

我的项目使用 QT 4.8.2。我的问题是 QTNetworkAccess 无法正确获取我的网址(或解码)。如果我将我的网址粘贴到浏览器,我会看到浏览器中的结果与我在结果中看到的不同(QNetworkreply)。

这是我需要获取的示例网址:* https://myhost/folder/folder/rss?cn1%5B0%5D=Web%2C+Mobile+%26+Software+Dev&cn2%5B0%5D=Web+Development

或者,没有 urlencode:** https://myhost/folder/folder/rss?cn1[]=Web%2C+Mobile+%26+Software+Dev&cn2[]=Web+Development

我尝试将 QUrl 作为 * 和 ** 传递。

这是我得到的代码:

也许,我的问题是 url 中的“+”符号......但我不知道。我可以提供我需要测试的完整链接。

请帮忙。

0 投票
2 回答
504 浏览

c++ - QT-FTP 上传错误

我正在尝试将一个简单的 txt 文件上传到 ftp 服务器,但从服务器收到“QNetworkReply::ContentOperationNotPermittedError”回复,我认为这与我的文件层次结构有关。

这是我的 ftp 服务器的文件顺序和我的 qt-ftp 配置:

文件顺序 FTP信息