Twilio の .NET ヘルパーライブラリは独自の HTTP トランスポート抽象化を受け入れます。その SystemNetHttpClient アダプターにより、このトランスポートはアプリケーションが構成した System.Net.Http.HttpClient を使用できます。

var proxy = new System.Net.WebProxy(
    "http://proxy.example.net:8080")
{
    Credentials = proxyCredentials
};

var handler = new System.Net.Http.HttpClientHandler
{
    Proxy = proxy,
    UseProxy = true,
    AllowAutoRedirect = false
};

var systemHttp = new System.Net.Http.HttpClient(handler);
var transport = new Twilio.Http.SystemNetHttpClient(systemHttp);
var twilioClient = new Twilio.Clients.TwilioRestClient(
    accountSid, authToken, httpClient: transport);

アプリケーションは proxyCredentials(適切な NetworkCredential など)と、既存の Twilio accountSid および authToken を提供します。中間サーバーがアカウントを必要としない場合は Credentials 初期化子を削除してください。HTTPプロキシ一覧から選んだ HTTP エンドポイントも、このアプリケーションのネットワークポリシーに従うことを条件に、認証なしの経路の候補になります。

ヘルパー操作の client パラメーターに twilioClient を渡します。そうしない場合、その操作は別途構成された既定のクライアントを使用する可能性があります。

ここでは AllowAutoRedirect を無効にしており、SDK アダプターが独自の基盤クライアントを作成するときの既定の動作を保ちます。独自の HttpClient を渡す場合、そのハンドラーの設定は利用者の責任になります。

systemHttp は関連するワークロードの間は存続させ、そのワークロードが終わったら破棄してください。SDK リクエストごとに新しいハンドラーを作ると、構成済みのトランスポートを再利用せず、新しい接続プールが作成されます。

関連記事