如何从 QNetworkrequest 中删除标头?

Posted

技术标签:

【中文标题】如何从 QNetworkrequest 中删除标头?【英文标题】:How to delete a header from a QNetworkrequest? 【发布时间】:2015-03-29 21:28:14 【问题描述】:

我想用 Qt 构建一个自定义 SOAP-Request。 对于我的特定 SOAP 操作数据包,我需要删除 自动出现在 QNetworkrequest 中的 Accept-Language 标头。

如果有以下相反的东西真的很方便:

QNetworkRequest browseRequest;
browseRequest.setRawHeader(QByteArray("Accept-Language"), QByteArray("english"));

例如:

browseRequest.deletePartOfHeader(QByteArray("Accept-Language"));

编辑: 使用 QTcpSocket 并发送所需的字符串。 没有找到其他解决方案。

【问题讨论】:

我找到了以下补丁:codereview.qt-project.org/#/c/47395 【参考方案1】:

不幸的是,我不相信使用 QNetworkRequest (目前)这是可能的。请参阅错误QTBUG-9463,“QNetworkRequest:能够取消设置一些可选的标头条目”。

错误报告的描述特别提到了您的情况:

QNetworkRequest:能够取消设置一些可选的标头条目 例如 Accept-Encoding 和 Accept-Language,因为它们不是必须的 在标题中,但目前无法取消设置它们。

(强调我的。)

【讨论】:

以上是关于如何从 QNetworkrequest 中删除标头?的主要内容,如果未能解决你的问题,请参考以下文章

在 QNetworkRequest 中设置标头时遇到问题

PyQt WebEngine 设置 http 标头

如何从 EB 响应中删除标头

如何从请求中删除授权标头[重复]

如何从 Azure Functions 的 HTTP 响应中删除标准标头?

如何从响应标头中的内容类型中删除 charset=utf-8