【发布时间】:2018-06-28 06:56:10
【问题描述】:
我正在创建一个 Xamarin.Forms 移动应用程序,它以 Android 为目标,使用 .NET Standard 作为我的代码共享方法。不幸的是,我使用的 API 在 Postman 中有效,但在 C# 中使用 System.Net.Http 中的 HttpClient 无效。
邮递员请求使用此标头:
我尝试了 3 种不同的方法,但它们仍然返回“401 未授权”。我还检查了我的 Android Manifest 文件中的 INTERNET 权限。
HttpClient.DefaultRequestHeaders.Add("Authorization", "Token e2eeb1aa9f32eb0ekgn353b6fadb772");
HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", "e2eeb1aa9f32eb0ekgn353b6fadb772");
HttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Token e2eeb1aa9f32eb0ekgn353b6fadb772");
【问题讨论】:
-
尝试添加对
HttpClient.DefaultRequestHeaders.Clear();的调用以确保其中没有任何其他标题。 -
我也试过了,没用。
-
另外,“令牌”似乎很奇怪。通常这是“承载者”?
-
是的,通常它是 Bearer,但是当我使用 Bearer 时,它会抛出一个错误。它只能通过使用 Authorization: Token
作为标题来工作(在 Postman 中)。 -
我的答案中的解决方案有效吗?
标签: c# android api xamarin.forms