HttpClient
ieGetAsync
等的所有方法都在PostAsync
内部调用SendAsync
方法吗?
问问题
362 次
1 回答
4
是的,它HttpClient
使用HttpMessageHandler
底层来执行所有 HTTP 请求。该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 回答