问题标签 [qnetworkrequest]

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 回答
827 浏览

qt - 在 QNetworkAccessManager 中,何时从解析 DNS 的 IP 列表中选择 IP?

我正在使用 QnetworkAccessManager 发出 HTTP 请求,我想知道 FQDN 何时被解析(DNS 解析)以获取 IP 地址或 IP 地址列表。

QNetworkAccessManager 如何从已解析的 IP 列表中选择 IP 来发送请求?

QNetworkAccessManager 是否保留 DNS 解析的缓存?

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 投票
1 回答
740 浏览

qt - 从 QNetworkReply 读取写入文件

假设我已经执行了 aQNetworkRequest并获得了适当的QNetworkReply. 如果它是一个大文件(比如 1 GB),我如何创建一个 4k 字节数组缓冲区并将 4k x 4k 的数据读取到该数组中并同时将其写入打开的文件流?例如,等效的 C# 代码是这样的(我熟悉 C# 而不是 Qt):

- - 编辑

实际上,我正在尝试做的是在每次运行我的应用程序时下载恢复功能。每次我尝试恢复下载时,我都会设置range标题QNetworkRequest并获取其余数据,因此不需要立即写入数据,而是逐步写入数据。

0 投票
3 回答
3054 浏览

qt - QNetworkAccessManager - 如何发送“PATCH”请求

我正在尝试向我的 firebase 应用程序发送“PATCH”请求。据我所知,QNetworkManager 不支持“Patch”请求。

如何发送“PATCH”请求?

0 投票
1 回答
2439 浏览

c++ - 使用 c++ QNetworkRequest 获取 HTTPS 站点内容

我正在尝试通过 VS2010 c++ 环境使用 Qt 框架(QNetworkRequest)获取站点的内容(json 字符串)。我从 HTTP 站点读取数据没有问题,但是当我尝试读取 HTTPS 站点的内容时,我没有运气。另一方面,浏览器可以“看到”网站内容。我认为这是证书的问题,但我并不完全确定。我只能从 Firefox 访问 ca.pem(我导出的)。我为 cert.pem 和 key.pem 使用了虚拟 pem 文件,这样我就不会留空。不幸的是,我无法以其他方式获取这些文件。

我收到错误 99 代码,描述为“私钥不验证公钥,错误:140A80B1:SSL 例程:SSL_CTX_check_private_key:未分配证书”。所以应该是虚拟密钥证书的错误。

但是我不能停止想知道浏览器怎么可能“看到”内容并且通过我不能的代码?是否有可能找到工作?

我的代码如下:

0 投票
0 回答
718 浏览

qt - 使用 readyRead() 使用 QNetworkAccessManager / QNetworkReply 下载会吃掉我的 RAM

我有以下设置和场景:

  • QT/QML-应用程序运行,可以触发下载一个 20MB 的文件到/tmp/IMAGE(使用QNetworkManager(), QNetworkReply(), readyRead()
  • /tmp是一个 ramdisk - 有 40+MB 的可用空间(当 QT/QML 应用程序正在运行时)
  • 在 QT/QML 应用程序运行时,我可以轻松地wget将 20MB 文件/tmp/IMAGE

但是,当尝试通过 QT/QML 应用程序下载文件时(使用QNetworkManager(),QNetworkReply()readyRead()-signal,qt/qml 应用程序甚至在实际下载一半文件之前就被内存不足的杀手杀死了(根据downloadProgress()和的大小/tmp/IMAGE)。

据我了解,readyRead()它是专门为部分下载块、将其写入磁盘、清除其使用的 RAM 以及下载和写入下一个块而设计的。

然而,这种方法似乎比使用方法消耗更多的内存wget——在下载了 10MB 的文件之后,Qt/QML 应用程序有一个我无法解释的巨大内存占用。

我基本上在做什么,它将readyRead()我的插槽与我命名的插槽连接起来partialDownloadFinished()file->write(reply->readAll());

我还检查了块大小是否可能会变大 via bytesAvailable(),但似乎也并非如此。

我的下一个猜测是数据的下载速度比写入(ram)磁盘的速度要快,但似乎也并非如此。

所以我被困住了。有人对此有任何线索或暗示吗?

非常感谢!

0 投票
1 回答
605 浏览

qt - 如何确定什么是 QNetworkRequest 方法(获取或发布)?

当我使用 QWebView 浏览网站并使用QWevView.Page().networkAccessManager().finished信号监控请求时,我如何确定什么是 taht 请求方法(Post 或 Get)?

这是我的代码:

0 投票
2 回答
2543 浏览

c++ - QNetworkReply 错误:网络访问被禁用

我正在使用 QNetworkRequest/QNetworkReply 下载文件。在成千上万人使用的旧程序版本上,它可以完美运行(VS 2010 编译器)。升级到 Visual Studio 2015 并使用 XP 目标重新编译整个项目(与 OpenSSL 相同的过程)后,一些用户在启动下载时开始收到错误:

网络访问被禁用。

错误记录在连接到来自 QNetworkReply::NetworkError 的 error() 信号的插槽中。

代码:

我设法在其中一台受影响的机器上安装了 Wireshark,但没有向 Internet 发出请求,因此它从一开始就失败了。到目前为止,我无法找出导致这些机器出现问题的原因。操作系统版本无关紧要,尝试禁用 AV/防火墙等。我也无法找到返回的错误字符串的任何详细信息。

该代码适用于 90% 的人,并已从 XP SP3 到 Windows 10 进行了测试。

可能是什么问题,我该如何调试呢?

0 投票
1 回答
761 浏览

qt - QNetworkAccessManager - 如何发送 MultiPart “PATCH” 请求

这个问题是对 QNetworkAccessManager - How to send “PATCH” request 的补充。

QNetworkAccessManager 没有方法

我坚持使用 Qt 4.8-bb10。我应该如何进行?

0 投票
1 回答
4503 浏览

qt - 获取http代码请求

U 使用 QNetworkRequest 发送发布请求。如何获取请求的 HTTP 代码?我向服务器发送了一些请求,在服务器上我可以看到我的请求,但我必须检查哪个服务器将返回给应用程序的 http 代码。