C#でWebClientビルダーを使用したWebクライアントの作成方法


  1. WebClientビルダーのセットアップ WebClientビルダーを使用するには、まず必要なパッケージをインストールします。NuGetパッケージマネージャーコンソールで以下のコマンドを実行してください。
Install-Package System.Net.Http -Version 4.3.4
  1. WebClientビルダーの使用 以下のコード例は、WebClientビルダーを使用してGETリクエストを送信する方法を示しています。
using System;
using System.Net.Http;
class Program
{
    static void Main()
    {
        var client = new HttpClientBuilder()
            .WithBaseAddress("https://api.example.com")
            .WithTimeout(TimeSpan.FromSeconds(10))
            .WithHeader("Authorization", "Bearer {access_token}")
            .Build();
        var response = client.GetAsync("/endpoint").Result;
        var content = response.Content.ReadAsStringAsync().Result;
        Console.WriteLine(content);
    }
}
class HttpClientBuilder
{
    private HttpClient _client;
    public HttpClientBuilder()
    {
        _client = new HttpClient();
    }
    public HttpClientBuilder WithBaseAddress(string baseAddress)
    {
        _client.BaseAddress = new Uri(baseAddress);
        return this;
    }
    public HttpClientBuilder WithTimeout(TimeSpan timeout)
    {
        _client.Timeout = timeout;
        return this;
    }
    public HttpClientBuilder WithHeader(string name, string value)
    {
        _client.DefaultRequestHeaders.Add(name, value);
        return this;
    }
    public HttpClient Build()
    {
        return _client;
    }
}

上記のコードでは、WebClientビルダークラスを使用してHttpClientを構築しています。WithBaseAddressメソッドでベースアドレスを設定し、WithTimeoutメソッドでタイムアウトを設定します。WithHeaderメソッドを使用してリクエストヘッダーを追加することもできます。最後に、Buildメソッドを呼び出してHttpClientを取得します。

注意点として、上記のコードでは同期的な実行を示していますが、実際のアプリケーションでは非同期メソッドを使用することをおすすめします。

以上が、WebClientビルダーを使用してWebクライアントを作成する方法となります。これにより、より柔軟で拡張可能なWebクライアントを実装することができます。