1. ホーム
  2. c#

[解決済み】同期接続にHttpClientを使用する理由

2022-04-07 17:01:21

質問

私は、APIと対話するためのクラスライブラリを構築しています。APIを呼び出して、XMLレスポンスを処理する必要があります。を使用することの利点がわかります。 HttpClient は非同期接続用ですが、私がやっているのは純粋に同期接続なので HttpWebRequest .

もし、どなたか光を当ててくださる方がいらっしゃいましたら、ぜひお願いします。私は、新しい技術をわざわざ使うような人間ではありません。

解決方法は?

今、この問題に遭遇した人のために、.NET 5.0 では、同期的な Send メソッドを HttpClient . https://github.com/dotnet/runtime/pull/34948

そのメリットや理由については、こちらで詳しく解説しています。 https://github.com/dotnet/runtime/issues/32125

したがって、これを 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();
}

このコードはあくまで簡易的な例であり、製品化されるものではありません。