繁体   English   中英

HttpClient 不接受授权标头(401 未授权)?

[英]HttpClient not accepting Authorization headers (401 Unauthorized)?

我正在创建一个 Xamarin.Forms 移动应用程序,它以 .NET Standard 作为我的代码共享方法的 Android 为目标。 不幸的是,我正在使用的 API 在 Postman 中有效,但在使用 System.Net.Http 的 HttpClient 的 C# 中无效。

邮递员请求使用此标头工作:

请求截图

我尝试了 3 种不同的方法,但它们仍然返回“401 未授权”。 我还检查了我的 Android 清单文件中的 INTERNET 权限。

HttpClient.DefaultRequestHeaders.Add("Authorization", "Token e2eeb1aa9f32eb0ekgn353b6fadb772");
HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", "e2eeb1aa9f32eb0ekgn353b6fadb772");
HttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Token e2eeb1aa9f32eb0ekgn353b6fadb772");

请确保您的 HTTP 请求URL正确与否。 有时您可能需要尾随反斜杠( '/' )。 如果您在HTTP 客户端中错过了它,它将不起作用,但POSTMAN会。

尝试在HttpRequestMessage上设置标头:

request.Headers.Authorization = new 
    AuthenticationHeaderValue("Bearer","e2eeb1aa9f32eb0ekgn353b6fadb772");

就我而言,在 AuthenticationHeaderValue 中设置基本身份验证时已修复。

var authToken = Encoding.ASCII.GetBytes(_UserName + ":" + _Password);
client.DefaultRequestHeaders.Authorization= new AunthenticationHeaderValue("Basic", Convert.ToBase64String(authToken));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM