0

特定のホストが HTTP Web 要求に応答しているかどうかを確認する必要があります。つまり、HttpWebRequest.Create(someURI) を実行して応答を確認するだけです。

HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(targetUri);

TimeSpan timeOut = TimeSpan.FromSeconds(timeOutInSeconds);
webRequest.Timeout = (int)timeOut.TotalMilliseconds;
webRequest.Proxy = proxy;
webRequest.AllowAutoRedirect = false; // get extra information with this turned off, but doesn't affect the problem

response = webRequest.GetResponse() as HttpWebResponse;

さて、発生した問題は、何らかの URI がファイアウォールによってブロックされている場合 (たとえば、「gibber.com」がブロックされている場合)、有効な HttpWebResponse が返され、スローされず、ResponseURI プロパティがブロックされたに設定されることです。 URI ("gibber.com") ですが、実際にはサーバーが応答しています。

HTTP ヘッダー内には Location キーがあり、その値はローカル サーバーの IP です。しかし、リクエストが実際にバウンスされた場合に解決するためにテキストを解析したくありません。これを行う正しい方法は何ですか?

ありがとう

4

1 に答える 1

0

response.ResponseUri が指定されたホストまたはファイアウォールに対応しているかどうかを確認します。

于 2012-08-17T17:57:25.253 に答える