2

HttpRequest を送信している Windows ストア アプリ (C#) があり、取得している応答が Captive/Limited Access Network からのものか、HttpRequest で指定された実際のホストからのものかを確認したいと考えています。

たとえば、www.serverA.com にリクエストを送信するとします。そのリクエストのレスポンスを見て、ステータス コードに基づいてリクエストが成功したかどうかを判断します。

キャプティブ ネットワーク (ログイン ページにリダイレクトされる空港ネットワーク/スターバックス) で同じシナリオを想像してみてください。

  • www.serverA.com にリクエストを送信しています
  • リクエストが www.serverB.com/AirPortLoginPage にリダイレクトされる
  • AirportLoginPage が 200 応答で正常に読み込まれたという応答を返します
  • 私のコードは 200 ステータス コードのためにそれを成功と見なしますが、元のリクエストが成功したかどうかを知りたいと思いました。

では、応答メッセージの送信元のサーバーのホストを特定する方法はありますか?

4

1 に答える 1

0

あなたの問題を解決できる2つのこと:

  1. HttpClientHandler.AllowAutoRedirectプロパティを に 設定できますfalse。ただし、他のコードがこれに依存している場合は、3xx (リダイレクト) を手動で処理する必要があります。

  2. HttpResponseMessage.RequestMessageを確認できます。リクエストを送信した後の例では、www.serverA.comこのプロパティにはwww.serverB.com/AirPortLoginPage

于 2013-06-14T16:41:21.027 に答える