首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QNetworkAccessManager和DNS解析

QNetworkAccessManager和DNS解析
EN

Stack Overflow用户
提问于 2013-05-29 10:49:04
回答 2查看 1.6K关注 0票数 0

我使用qnetworkaccessmanager来发出HTTP请求。我连接到的服务器的主机名(FQDN)在DNS中有两个IP addresses,我需要控制使用哪一个。显而易见的解决方案(change the URL's hostname to IP address)不起作用,因为server在location字段中发送一个带有原始hostname302 redirect。如果我遵循redirectQT似乎会随机选择它连接到哪个IP

有没有办法告诉qnetworkaccessmanagerTCP connect()级别上使用给定的IP address,并从URL中使用Host header?如果没有,任何解决办法的建议都会受到赞赏。

编辑:使用QT4.7.4

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-30 08:10:40

这似乎可行,而且是一个简单的解决方法:将QNetworkRequest的URL设置为包含要连接到的主机部分中所需的IP地址,但也可以使用setCustomHeader(“主机”,"")来避免重定向。在我的测试中,QT将始终使用URL中的IP集。

票数 1
EN

Stack Overflow用户

发布于 2013-05-29 11:37:33

您应该能够构建一个自定义的QNetworkRequest,并指定QNetworkRequest::LocationHeader,以便在重定向的情况下强制特定的目标URL。如果您查看QNetworkAccessManager::sendCustomRequest (QNetworkAccessManager::sendCustomRequest文档),以及QNetworkRequest::Attribute::RedirectionTargetQNetworkRequest::KnownHeaders ),它应该会给您一些提示。

(脚注:我正在使用harmattan文档,因为适当的Qt文档在回答的时候已经减少了)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16811882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档