您好,我正在创建一个Xamarin.Forms移动应用程序,该应用程序将Android以.NET Standard作为我的代码共享方法。不幸的是,我使用的API在Postman中工作,但在System.Net.Http中使用HttpClient的C#中却无法工作。
邮递员请求使用以下标头工作:
我尝试了3种不同的方法,但是它们仍然返回“ 401未经授权”。我还检查了Android Manifest文件中的INTERNET权限。
HttpClient.DefaultRequestHeaders.Add("Authorization", "Token e2eeb1aa9f32eb0ekgn353b6fadb772");
HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", "e2eeb1aa9f32eb0ekgn353b6fadb772");
HttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Token e2eeb1aa9f32eb0ekgn353b6fadb772");
答案 0 :(得分:1)
请确保您的HTTP请求 URL 是否正确。有时您可能需要在结尾加上反斜杠('/')。 如果您在 HTTP客户端中错过了它,它将无法工作,但是 POSTMAN 将。
答案 1 :(得分:0)
尝试在HttpRequestMessage
上设置标题:
request.Headers.Authorization = new
AuthenticationHeaderValue("Bearer","e2eeb1aa9f32eb0ekgn353b6fadb772");
答案 2 :(得分:0)
以我为例,当我在AuthenticationHeaderValue中设置基本身份验证时,此问题已修复。
var authToken = Encoding.ASCII.GetBytes(_UserName + ":" + _Password);
client.DefaultRequestHeaders.Authorization= new AunthenticationHeaderValue("Basic", Convert.ToBase64String(authToken));