解決 HttpClient 中用於 Web API 模擬的憑證問題
與 Web API 通訊時模擬使用者通常會導致正確傳遞憑證的挑戰。 本文解決了 HttpClient
和 WebClient
方法之間的不一致問題。
您的應用程式使用 HttpClient
,並將 UseDefaultCredentials
設為 true
。 然而,僅此還不足以實現正確的憑證傳輸。需要一個更強大的解決方案。
關鍵在於HttpClientHandler
的Credentials
屬性。 透過設定此屬性,HttpClient
可以使用指定的憑證進行身份驗證。
這是改進後的程式碼:
<code class="language-csharp">var httpClientHandler = new HttpClientHandler { UseDefaultCredentials = true }; httpClientHandler.Credentials = CredentialCache.DefaultCredentials; var httpClient = new HttpClient(httpClientHandler); httpClient.GetStringAsync("http://localhost/some/endpoint/").Wait();</code>
CredentialCache.DefaultCredentials
自動擷取目前進程的預設憑證。 這些通常與 Web 應用程式請求者的身分相匹配,從而實現所需的模擬。
重要提示:此方法不會自動處理憑證刷新或過期。 對於經常過期的憑證,需要自訂憑證管理。
以上是如何使用 HttpClient 正確傳遞模擬 Web API 請求的憑證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!