.NetCore HttpClient Proxy 設置全局代理
-
環境 .net6.0,使用的是 HttpClient
-
在Program.cs里面
service.AddHttpClient<HttpClientHelper>();
-
-
重點是在 HttpClientHelpe 的構造函數里面設置
-
構造函數會接受來自Program.cs里面注入的 HttpClient 因此我可以直接對其進行配置
-
方式一配置,全局的HttpClient的代理
-
方式二配置,當前構造函數里面的HttpClient的代理
-
完整代碼如下,如有需要自行修改
-
private readonly HttpClient _httpClient; public HttpClientHelper(HttpClient httpClient1) { #region Proxy //1.設置帶用戶和密碼的代理 var Address = ConfigCommon.Configuration["Proxy:Address"];//地址 var Account = ConfigCommon.Configuration["Proxy:Account"];//用戶名 var Password = ConfigCommon.Configuration["Proxy:Password"];//密碼 var webProxy = new WebProxy(Address, false); webProxy.BypassProxyOnLocal = true; //2.如果有用戶名和密碼需要以下設置 ICredentials jxCredt = new NetworkCredential(Account, Password); webProxy.Credentials = jxCredt; #region 方式一 HttpClient.DefaultProxy = webProxy; #endregion #region 方式二 注釋 var proxyHttpClientHandler = new HttpClientHandler { Proxy = webProxy, UseProxy = true }; HttpClient httpClient = new HttpClient(proxyHttpClientHandler); _httpClient = httpClient; #endregion //超時時間設置 httpClient.Timeout = TimeSpan.FromMinutes(5); //設置Header httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded")); #endregion _httpClient = httpClient; }
-
-
-
appsettings.json里面的Proxy配置如下
-
"Proxy": { "Address": "127.0.0.1:6666", "Account": "username", "Password": "pwd" }
一些基本使用方法,歡迎大家討論,轉載請標明原創地址~ 謝謝~~~Bye~
-


