ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.NetCore HttpClient Proxy 设置全局代理

2022-03-26 17:01:41  阅读:196  来源: 互联网

标签:NetCore Proxy var new httpClient webProxy HttpClient


.NetCore HttpClient Proxy 设置全局代理
  1. 环境 .net6.0,使用的是 HttpClient

    • 在Program.cs里面

      service.AddHttpClient<HttpClientHelper>();
      
      
  2. 重点是在 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;
                }
        
        
  3. appsettings.json里面的Proxy配置如下

    • "Proxy": {
          "Address": "127.0.0.1:6666",
          "Account": "username",
          "Password": "pwd"
        }
      

    一些基本使用方法,欢迎大家讨论,转载请标明原创地址~ 谢谢~~~Bye~

标签:NetCore,Proxy,var,new,httpClient,webProxy,HttpClient
来源: https://www.cnblogs.com/goodluckily/p/16059766.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有