小编典典

为什么使用 HttpClient 进行同步连接

all

我正在构建一个类库来与 API 交互。我需要调用 API 并处理 XML
响应。我可以看到使用HttpClient异步连接的好处,但我所做的是纯粹同步的,所以我看不到使用HttpWebRequest.

如果有人能阐明任何观点,我将不胜感激。我不是为了新技术而使用新技术的人。


阅读 68

收藏
2022-06-11

共1个答案

小编典典

对于现在遇到此问题的任何人,.NET 5.0 已将同步Send方法添加到HttpClient.
https://github.com/dotnet/runtime/pull/34948

关于为什么在这里详细讨论的优点:https
://github.com/dotnet/runtime/issues/32125

因此,您可以使用 this 而不是SendAsync. 例如

public string GetValue()
{
    var client = new HttpClient();

    var webRequest = new HttpRequestMessage(HttpMethod.Post, "http://your-api.com")
    {
        Content = new StringContent("{ 'some': 'value' }", Encoding.UTF8, "application/json")
    };

    var response = client.Send(webRequest);

    using var reader = new StreamReader(response.Content.ReadAsStream());

    return reader.ReadToEnd();
}

这段代码只是一个简化的例子——它还没有准备好生产。

2022-06-11