簡體   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