ServiceStack HttpUtils 在 .NET 6+ 上的代理设置
在初始化期间配置 .NET 6+ 共享客户端的代理;之后更改工厂不会替换现有客户端。
在 ServiceStack 的 .NET 6+ 构建中,HTTP Utils 会创建一个延迟初始化的共享 HttpClient。请在应用程序初始化时、首次调用辅助方法之前设置其处理程序工厂:
ServiceStack.HttpUtils.HttpClientHandlerFactory = () =>
new System.Net.Http.HttpClientHandler
{
UseProxy = true,
Proxy = new System.Net.WebProxy("http://proxy.example:8080"),
AutomaticDecompression =
System.Net.DecompressionMethods.Brotli |
System.Net.DecompressionMethods.Deflate |
System.Net.DecompressionMethods.GZip
};如果共享客户端已存在,更改此工厂不会重新配置它。当之后的赋值看起来无效时,首先要检查的就是这个时机。可以在该共享客户端创建之前,从 HTTP 代理列表中选择一个 HTTP 端点用于公开路由。
对于代理账户,请通过应用程序的配置设置 WebProxy.Credentials。HttpClientHandler.UseDefaultCredentials 涉及服务器账户,不会自动填充 该代理对象的凭据。
较旧的 HttpWebRequest 和 requestFilter 示例针对的是早期实现。在较新的形式中,请求配置负责请求字段,而处理程序负责连接路由。
已安装自定义客户端工厂或应用程序 HTTP 客户端工厂归属安排时,请予以保留。此处理程序工厂是共享策略;同时运行的不相关路由需要各自拥有的客户端。