我正在使用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
答案 0 :(得分:1)
这似乎有效并且是一个简单的解决方法:将QNetworkRequest的URL设置为包含要在主机部分中连接的所需IP地址,还要使用setCustomHeader(“Host”,“< server hostname>”)来避免重定向。在我的测试中,QT将始终使用URL中的IP集。
答案 1 :(得分:0)
您应该能够构建自定义QNetworkRequest
并指定QNetworkRequest::LocationHeader
以在重定向时强制使用特定目标网址。如果您查看QNetworkAccessManager::sendCustomRequest
(QNetworkAccessManager::sendCustomRequest doc),QNetworkRequest::Attribute::RedirectionTarget
和QNetworkRequest::KnownHeaders
,它应该会给您一些提示。
(脚注:我正在使用harmattan文档,因为正确的Qt文档在回答时已关闭)