2017-08-22 4 views
2

HttpClientを使用して、プロキシの背後にあるAPIと通信しようとしています。しかし、プロキシは現在の環境に対してのみ有効であるため、ハードコーディングする必要はありません。HttpClientでapp.config defaultProxyを使用する

は、これは私が現在やっているものです:

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

アプリ/ウェブ内部プロキシを定義するためのいずれかの可能性がある:

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); 
} 

これは私が使用したいものです。設定し、私のHttpClientのデフォルトでそれを使用する?

ありがとうございました。

答えて

1

だけのappSettingsタグの下に設定を追加し、あなたはそのためのapp.configている、アプリケーション内のハードコードされた設定を使用することはありません:

<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); 

}を読みます

+1

web.config defaultProxyに関する元のポスターの質問に対する答えは、私はまだ価値があります。 HttpClientはこの設定を使用できますか? – JohnKoz

関連する問題