在 Twilio 的 .NET 客户端中使用 HTTP 代理
用 Twilio 的 SystemNetHttpClient 适配器包装能识别代理的 System.Net.Http.HttpClient,并传给 TwilioRestClient。
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 端点也是该无认证路由的另一个候选,但须遵守本应用程序的网络策略。
把 twilioClient 传给辅助操作的 client 参数。否则该操作可能使用另行配置的默认客户端。
这里禁用 AllowAutoRedirect,是为了在 SDK 适配器创建自己的底层客户端时保留其默认行为。当你提供自己的 HttpClient 时,其处理程序的设置便由你负责。
在相关工作负载期间保持 systemHttp 存活,并在该工作负载结束时释放它。围绕每个 SDK 请求新建处理程序会创建新的连接池,而不是复用已配置的传输。