Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

HttpClient not accepting Authorization headers (401 Unauthorized)?

I am creating a Xamarin.Forms mobile app that targets Android with .NET Standard as my code sharing method. Unfortunately the API I'm consuming works in Postman but doesn't work in C# using HttpClient from System.Net.Http.

Postman request works using this header:

Request Screenshot

I have tried 3 different approaches but they all still return "401 unauthorized". I've also checked the INTERNET permission in my Android Manifest file.

HttpClient.DefaultRequestHeaders.Add("Authorization", "Token e2eeb1aa9f32eb0ekgn353b6fadb772");
HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", "e2eeb1aa9f32eb0ekgn353b6fadb772");
HttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Token e2eeb1aa9f32eb0ekgn353b6fadb772");
like image 883
iamlawrencev Avatar asked Sep 03 '25 06:09

iamlawrencev


2 Answers

Please make sure your HTTP request URL is correct or not. Sometimes you may need a trailing forwardslash ( '/' ). If you missed it in HTTP client, will not work but POSTMAN will .

like image 105
dush88c Avatar answered Sep 04 '25 19:09

dush88c


Try setting the header on the HttpRequestMessage:

request.Headers.Authorization = new 
    AuthenticationHeaderValue("Bearer","e2eeb1aa9f32eb0ekgn353b6fadb772");
like image 41
Kristoffer Jälén Avatar answered Sep 04 '25 20:09

Kristoffer Jälén