HttpClientieGetAsyncなどのすべてのメソッドはPostAsync内部的にメソッドを呼び出しSendAsyncますか?
1 に答える
4
はい、すべての HTTP 要求を実行するために下にHttpClient使用します。メソッドはHttpMessageHandler、によって呼び出されるものです。HttpMessageHandlerTask<HttpResponseMessage> SendAsync(HttpRequestMessage, CancellationToken)HttpClient
抽象クラスのデフォルトの実装HttpMessageHandlerはHttpClientHandler.
HttpMessageHandler独自の実装を、実装をHttpClient受け取るコンストラクターに渡すことができます。必要になる可能性はほとんどありませんが、アプリケーションはあります。たとえば、作成したすべてのリクエストをログに記録したい場合HttpClient。LoggingHttpMessageHandlerのデコレータを作成できますHttpMessageHandler。
using (var handler = new HttpClientHandler())
using (var loggingHandler = new LoggingHttpClientHandler(handler, logger))
using (var client = new HttpClient(loggingHandler))
{
// Logs "GET https://www.google.com/"
var response = await client.GetAsync("https://www.google.com/");
...
}
于 2015-10-30T14:53:41.203 に答える