Im implementing a api made by other collegues with Apiary.io, in a windows store app project.
they show this example of a method i have to implement
var baseAddress = new Uri("https://private-a8014-xxxxxx.apiary-mock.com/");
using (var httpClient = new HttpClient{ BaseAddress = baseAddress })
{
using(var response = await httpClient.GetAsync("user/list{?organizationId}"))
{
string responseData = await response.Content.ReadAsStringAsync();
}
}
in this and some other methods i need to have a header with a token that i get before
heres a image of postman( chrome extension ) with the header im talking about
how do i add that Authorization header to the request?
The accepted answer works but can got complicated when I wanted to try adding Accept headers. This is what I ended up with. It seems simpler to me so I think I'll stick with it in the future:
Following the greenhoorn's answer, you can use "Extensions" like this:
And use:
You can add whatever headers you need to the
HttpClient
.Here is a nice tutorial about it.
This doesn't just reference to POST-requests, you can also use it for GET-requests.
A later answer but because no one gave this solution...
If you don't want to set the header on the HttpClient instance by adding it to the
DefaultRequestHeaders
, you could set headers per request.But you will be obliged to use the
SendAsync()
method.It's the right solution if you want to reuse the httpclient --which is a good practice for performance and port exhaustion problems-- and do something thread safe and without sending every time the same headers...
Use it like that:
When using GetAsync with the HttpClient you can add the authorization headers like so:
This does add the authorization header for the lifetime of the HttpClient so is useful if you are hitting one site where the authorization header doesn't change.
Here is an detailed SO answer