我正在尝试使用 HttpClient 为 HTTP Post 或 HTTP Get 编写客户端。当谷歌搜索时,我遇到了这些在 HttpClient 对象中设置这些身份验证的方法。一个使用 NetworkCredential,另一个使用 AuthenticationHeaderValue
HttpClient sClient;
HttpClientHandler sHandler = new HttpClientHandler();
sHandler.Credentials = new NetworkCredential("UserName", "Password");
sClient = new HttpClient(sHandler);
OR
HttpClient sClient new HttpClient();
sClient.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Basic",Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes("UserName:Password")));
在 MSDN 上阅读并没有给我关于它们之间差异的明确答案。在这种情况下,除了身份验证信息的存储方式之外,两者都会执行相同的操作吗?例如 AuthenticationHeaderValue 将其放入标头,而另一个则没有?就我的用例或最佳实践而言,其中一个比另一个更好吗?
第二种方法更加灵活,您可以指定要使用的身份验证类型(例如,匿名、基本、窗口、证书等)。
如果您的第一种方法不起作用,请尝试在 NetworkCredential 上指定第三个参数,即域名。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)