29

NuGetからのHttpClientの使用。

アプリはclient.PostAsync()で投稿を送信します。302リダイレクトに従わないようにしたいと思います。

どうやって?

私はこの答えAllowAutoRedirectで説明されているように設定できると思います。

HttpWebRequestしかし、PostAsync()呼び出し内で使用するにはどうすればよいですか?

4

2 に答える 2

47

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");
于 2012-05-05T18:37:37.727 に答える
13

ハンスの答えに追加するには:

WebRequestHandlerはHttpClientHandlerから派生しますが、通常は完全な.NETでのみ使用可能なプロパティを追加します。WebRequestHandlerはSystem.Net.HttpDLLではなく、System.Net.Http.WebRequest DLLに含まれているため、表示するには、参照として明示的に含める必要があります。それ以外の場合は表示されません。

新しいDLLを追加したくない場合は、HttpClientHandlerを使用できます。

    HttpClientHandler clientHandler = new HttpClientHandler();
    clientHandler.AllowAutoRedirect = false;

参照:https ://blogs.msdn.microsoft.com/henrikn/2012/08/07/httpclient-httpclienthandler-and-webrequesthandler-explained /

于 2018-06-20T19:20:10.760 に答える