Dot-Net

使用 HttpClient 類時如何對代理進行身份驗證?

  • March 22, 2012

我有一個基於 .NET 4 的控制台應用程序,它使用HttpClient庫(通過 NuGet 獲得)通過 Internet 從公共 API 檢索數據。控制台應用程序位於代理後面。它所在的 Windows 電腦在 Internet Explorer 中具有正確的代理設置。當控制台應用程序嘗試訪問外部世界時,它會收到 407 狀態 - “需要代理身份驗證”。

我還沒有編寫任何特定的程式碼來處理代理。我從 407 錯誤中假設應用程序指向代理沒有問題,但代理沒有對請求進行身份驗證。

我的問題是,是否可以將 HttpClient 設置為使用登錄使用者的憑據來驗證代理?如果是這樣,怎麼做?

var client = new HttpClient(webRequestHandler);
client.PostAsync(RequestUri, MyContent);

我設法通過 app.config 中的代理配置非常簡單地解決了我的問題。

<system.net>
   <defaultProxy enabled="true" useDefaultCredentials="true">
       <proxy usesystemdefault="True" />
   </defaultProxy>
</system.net>

<http://msdn.microsoft.com/en-us/library/dkwyc043.aspx>

引用自:https://stackoverflow.com/questions/9827976