qt5 - 与桌面应用程序和 WebAssembly 应用程序不同的行为
问题描述
我的应用程序是使用 Qt WebAssembly 框架版本 5.15.1 开发的前端客户端。如果我运行在 mingw 64 位或 webassembly 上编译的应用程序,我会有不同的行为。
我想从服务器获取一个 xml 文件,我通过 RESTful api 询问这个文件。
当我以桌面模式 [1](使用 mingw 64 编译)运行我的应用程序时,收到的有效负载(我使用QNetworkReply::readAll)是正确的。我没有问题地阅读了xml。
当我在 Chrome 中以 web 模式 [2](使用 webassembly 编译)运行我的应用程序时,我的程序出现故障,因为使用 QNetworkReply::readAll 读取的 QNetworkReply(与 QNetworkAccessManager 相关联)有效负载返回 qt 主页“qt.io”。
我在配置 QNetworkRequest 实例所需的 QUrl 实例中设置了架构、主机、端口。我试图在我的 QNetworkAccessManager istance 中设置主机和端口。
该请求由QNetworkAccessManager::get执行 。beetwen [1] 和 [2] 的唯一区别是编译过程。我对模式、主机、端口和请求使用相同的值。有人可以帮我理解这种行为吗?
这是我的代码的一部分:
m_TgtUrl.setScheme(newSchema);
m_TgtUrl.setHost(newHost);
m_TgtUrl.setPort(newPort);
m_TgtUrl.setPath(newPath);
QUrlQuery query;
query.addQueryItem("filename", xmlFilename);
m_TgtUrl.setQuery(query);
QNetworkRequest request;
request.setUrl(m_TgtUrl);
QNetworkAccessManager m_NAM;
QNetworkReply *m_MyReply = m_NAM.get(request);
connect(m_MyReply, &QNetworkReply::finished, this, [this]() {
QByteArray BA(m_MyReply->readAll());
qDebug << BA;
});
解决方案
推荐阅读
- c# - 使用 SQL Server 数据库将 SQL 查询转换为 Linq
- django - Django 数据库路由器 - 你如何测试它们,尤其是对于迁移?
- javascript - 如何使用颜色选择器更改所选文本的颜色
- wordpress - 让我的 wordpress 主题支持多语言
- python - SHAP 异常:TreeExplainer 中的可加性检查失败
- azure - 如何在 azure 中将现有资源转换为 terraform
- amazon-web-services - AWS S3 java SDK:无法创建存储桶
- c - c语言中使用指针的数组操作
- c++ - 我从哪里获得 Windows SAPI .pdb 文件?
- android - Android中对象的通用变量