2009-05-28 6 views
0

httpリモートリダイレクトを使用するコードからhttp 302リダイレクトを区別できる必要があります。.netリモートからhttp 302リダイレクトを処理するにはどうすればよいですか?

適切なURLに接続するには、1つが動作するまで順番に試してください。ほとんどの環境では、最初のURLは、WebExceptionStatus.NameResolutionFailureのステータスが のSystem.Net.WebExceptionで正しく失敗します。 OpenDNSを使用する顧客の場合、これはガイドページにリダイレクトされるHTTP 302応答として戻ってきます。リダイレクトは無視され、受信したエラーはSystem.Runtime.Serialization.SerializationExceptionであり、そのメッセージは「解析が完了する前にストリームが終了しました」というメッセージでのみ区別されます。 HTTP/1.0 302見つかり 場所:http://guide.opendns.com/?url=demonstration.totallyinvalidexceptonmynetwork.com%2Fi%2Fdo%2Fnot%2Fexist.html コンテンツタイプ:text/htmlの のContent-Length:0 接続:近い 日:木、2009年5月28日午前20時46分ここで

はOpenDNSのHTTP応答です。 26 GMT サーバー:OpenDNSガイド

答えて

0

私はあなたがHttpWebRequestオブジェクトを使用しているリクエストを投稿するとします。次に、HttpWebResponseオブジェクトのレスポンスを以下のように受け取ることができます。 次に、response.StatusCodeプロパティを確認できます。それが302なら、あなたのロジックを実行します。

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
if (response.StatusCode = HttpStatusCode.Found) 
{ 
    //your code here 
} 

更新:あなたはSystem.Net.Webclientを使用している場合、あなたはそのResponseHeadersプロパティを使用することができます使用することができます。 Hereはどのように使用できるかです。

+0

.net remotingは、HttpWebRequestまたはWebClientまたは任意の関連するクラスを公開しません。呼び出し側コードは、サーバー上で呼び出されている型のようなプロキシオブジェクトを参照します。 (ええ、これは2年前のことですが) – sphereinabox

関連する問題