c# – .net中的HttpClient在NetworkCredentials中提供用户名和密码时发出2个请求

前端之家收集整理的这篇文章主要介绍了c# – .net中的HttpClient在NetworkCredentials中提供用户名和密码时发出2个请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当使用.net 4.5中的HttpClient进行基本身份验证时,我发现它发出了2个请求.

第一个失败,HTTP / 1.1 401 Unauthorized,然后重新发送我们获得HTTP / 1.1 200 OK的请求.

关于如何阻止它这样做的任何想法?

var credential = new NetworkCredential 
{ 
    UserName = username,Password = password 
}
var httpClientHandler = new System.Net.Http.HttpClientHandler
{
    Credentials = credential
};
httpClient = new HttpClient(httpClientHandler,true)
{
    BaseAddress = address
};

解决方法

尝试设置:
httpClientHandler.PreAuthenticate = true;

我认为第一个请求仍将获得最初的401,但是对于相同URI的后续请求直到最后一个正斜杠应始终发送没有401的认证头.

原文链接:https://www.f2er.com/csharp/100763.html

猜你在找的C#相关文章