解决 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中文网其他相关文章!