HttpClient
ieGetAsync
などのすべてのメソッドはPostAsync
内部的にメソッドを呼び出しSendAsync
ますか?
1 に答える
4
はい、すべての HTTP 要求を実行するために下にHttpClient
使用します。メソッドはHttpMessageHandler
、によって呼び出されるものです。HttpMessageHandler
Task<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 に答える