簡體   English   中英

讓 HttpClient 使用 app.config defaultProxy

[英]Make HttpClient use app.config defaultProxy

我正在嘗試使用HttpClient與代理后面的 api 對話。 但是因為代理只對當前環境有效,所以我不希望它被硬編碼。

這就是我目前正在做的事情:

public static HttpClient CreateClient()
{
  var cookies = new CookieContainer();
  var handler = new HttpClientHandler
  {
    CookieContainer = cookies,
    UseCookies = true,
    UseDefaultCredentials = false,
    UseProxy = true,
    Proxy = new WebProxy("proxy.dev",1234),
  };
  return new HttpClient(handler);
}

這是我想使用的:

<system.net> 
  <defaultProxy> 
    <proxy bypassonlocal="true" 
           usesystemdefault="false" 
           proxyaddress="http://proxy.dev:1234" /> 
  </defaultProxy>
</system.net>

是否有可能在 app/web.config 中定義代理並在我的 HttpClient 中按默認使用它?

感謝您的任何想法。

永遠不要在你的應用程序中使用硬編碼設置,你有 app.config ,只需在 appSettings 標簽下添加你的設置:

  <appSettings>
    <add key="proxyaddress" value="proxy.dev:1234" /> 
  </appSettings>

並在您的應用程序中讀取該密鑰

public static HttpClient CreateClient()
{
  readonly static string[] proxyAddress = ConfigurationManager.AppSettings["proxyaddress"].Split(':');
  var cookies = new CookieContainer();
  var handler = new HttpClientHandler
  {
    CookieContainer = cookies,
    UseCookies = true,
    UseDefaultCredentials = false,
    UseProxy = true,
    Proxy = new WebProxy(proxyAddress[0],proxyAddress[1]),
  };
  return new HttpClient(handler);

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM