2

我有一个 Windows 应用商店应用程序 (C#),我在其中发送一个 HttpRequest,我想检查我得到的响应是来自强制/受限访问网络还是来自 HttpRequest 中指定的实际主机。

因此,假设我正在向 www.serverA.com 发送请求,我查看该请求的响应并根据状态代码确定它是否成功。

想象一下俘虏网络中的相同场景(机场网络/星巴克将您重定向到登录页面):

  • 我正在向 www.serverA.com 发送请求
  • 我的请求被重定向到 www.serverB.com/AirPortLoginPage
  • 我收到一个响应,即 AirportLoginPage 成功加载,并带有 200 响应
  • 由于 200 状态码,我的代码认为这是成功的,但我想知道我的原始请求是否成功

那么,有没有办法确定响应消息来自的服务器的主机?

4

1 回答 1

0

有两件事可以解决您的问题:

  1. 您可以将HttpClientHandler.AllowAutoRedirect属性设置为 false。但是,如果任何其他代码依赖于此 - 您将需要手动处理 3xx(重定向)。

  2. 您可以检查HttpResponseMessage.RequestMessage。在您将请求发送到之后的示例中www.serverA.com- 此属性将具有www.serverB.com/AirPortLoginPage

于 2013-06-14T16:41:21.027 回答