android HttpClient不接受受权信头(401未受权)?

hyrbngr7  于 2022-12-02  发布在  Android
关注(0)|答案(3)|浏览(266)

我正在创建一个面向Android的Xamarin.Forms移动的应用程序,将.NET Standard作为我的代码共享方法。不幸的是,我使用的API可以在Postman中工作,但不能在使用System.Net.Http中的HttpClient的C#中工作。
Postman 请求使用此标头:

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

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

toiithl61#

请确认您的HTTP请求URL是否正确。有时候您可能需要一个尾随的正斜杠('/')。如果您在HTTP客户端中遗漏了它,将无法工作,但POSTMAN可以。

a0x5cqrl

a0x5cqrl2#

尝试在HttpRequestMessage上设置标头:

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

zzzyeukh3#

在我的情况下,当我在AuthenticationHeaderValue中设置基本身份验证时,已修复。

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

相关问题