アプリはclient.PostAsync()で投稿を送信します。302リダイレクトに従わないようにしたいと思います。
どうやって?
私はこの答えAllowAutoRedirect
で説明されているように設定できると思います。
HttpWebRequest
しかし、PostAsync()呼び出し内で使用するにはどうすればよいですか?
アプリはclient.PostAsync()で投稿を送信します。302リダイレクトに従わないようにしたいと思います。
どうやって?
私はこの答えAllowAutoRedirect
で説明されているように設定できると思います。
HttpWebRequest
しかし、PostAsync()呼び出し内で使用するにはどうすればよいですか?
HttpClient
コンストラクター
のオーバーロードの1つがWebRequestHandler
引数を取ります。HttpClient
クラスはこれ
を使用WebRequestHandler
してリクエストを送信します。
このWebRequestHandler
クラスはAllowAutoRedirect
、リダイレクト動作を構成するために呼び出されるプロパティを提供します。このプロパティをfalseに設定すると、HttpClient
リダイレクト応答に従わないように指示されます。
これが小さなコードサンプルです:
WebRequestHandler webRequestHandler = new WebRequestHandler();
webRequestHandler.AllowAutoRedirect = false;
HttpClient httpClient = new HttpClient(webRequestHandler);
// Send a request using GetAsync or PostAsync
Task<HttpResponseMessage> response = httpClient.GetAsync("http://www.google.com");
ハンスの答えに追加するには:
WebRequestHandlerはHttpClientHandlerから派生しますが、通常は完全な.NETでのみ使用可能なプロパティを追加します。WebRequestHandlerはSystem.Net.HttpDLLではなく、System.Net.Http.WebRequest DLLに含まれているため、表示するには、参照として明示的に含める必要があります。それ以外の場合は表示されません。
新しいDLLを追加したくない場合は、HttpClientHandlerを使用できます。
HttpClientHandler clientHandler = new HttpClientHandler();
clientHandler.AllowAutoRedirect = false;