0

リクエストに使っqnetworkaccessmanagerていHTTPます。接続先のサーバーのホスト名 ( FQDNIP addresses ) には 2 つあり、DNSどちらを使用するかを制御する必要があります。がロケーション フィールドにオリジナルを含む を送り返すため、明らかな解決策 ( change the URL's hostname to IP address) は機能しません。に従うと、QTは接続先のIPをランダムに選択するようです。server302 redirecthostnameredirect

レベルでqnetworkaccessmanager与えられたを使用し、からを使用するように指示するIP address方法はありますか? そうでない場合は、回避策の提案をいただければ幸いです。TCP connect()Host headerURL

編集:QT 4.7.4を使用

4

2 に答える 2

1

これは機能しているようで、簡単な回避策です。QNetworkRequest の URL を設定して、ホスト部分に接続する目的の IP アドレスを含めますが、リダイレクトを回避するために setCustomHeader("Host", "<server hostname>") も使用します。私のテストでは、QT は常に URL に設定された IP を使用します。

于 2013-05-30T08:10:40.910 に答える
0

カスタムを構築し、リダイレクトの場合に特定の宛先 URL を強制するようにQNetworkRequest指定できるはずです。( QNetworkAccessManager::sendCustomRequest doc)QNetworkRequest::LocationHeaderを見ると、それについてのヒントが得られるはずです。QNetworkAccessManager::sendCustomRequestQNetworkRequest::Attribute::RedirectionTargetQNetworkRequest::KnownHeaders

(脚注:回答の時点で適切なQtドキュメントがダウンしているため、harmattanドキュメントを使用しています)

于 2013-05-29T11:37:33.040 に答える