QNetworkAccessManager和DNS解析

时间:2013-05-29 10:49:05

标签: qt http qnetworkaccessmanager

我正在使用qnetworkaccessmanager发出HTTP次请求。我连接的服务器的主机名( FQDN )在IP addresses中有两个DNS,我需要控制使用哪个change the URL's hostname to IP address。明显的解决方案(server)不起作用,因为302 redirect会在位置字段中发回hostname原始redirect。如果我按照qnetworkaccessmanager QT 似乎会随机选择连接的 IP

有没有办法告诉IP address使用TCP connect()级别的给定Host header并使用URL中的{{1}} }?如果没有,我们非常感谢任何解决方法建议。

编辑:使用QT 4.7.4

2 个答案:

答案 0 :(得分:1)

这似乎有效并且是一个简单的解决方法:将QNetworkRequest的URL设置为包含要在主机部分中连接的所需IP地址,还要使用setCustomHeader(“Host”,“< server hostname>”)来避免重定向。在我的测试中,QT将始终使用URL中的IP集。

答案 1 :(得分:0)

您应该能够构建自定义QNetworkRequest并指定QNetworkRequest::LocationHeader以在重定向时强制使用特定目标网址。如果您查看QNetworkAccessManager::sendCustomRequestQNetworkAccessManager::sendCustomRequest doc)QNetworkRequest::Attribute::RedirectionTargetQNetworkRequest::KnownHeaders,它应该会给您一些提示。

(脚注:我正在使用harmattan文档,因为正确的Qt文档在回答时已关闭)