Set Authorization Header of HttpClient

Hakan Fıstık picture Hakan Fıstık · Aug 23, 2015 · Viewed 41.5k times · Source

I have the following code, and I want to set the Authorization of the post request to be like this:

Authorization:key=somevalue

using (HttpClient client = new HttpClient())
{
     using (StringContent jsonContent = new StringContent(json))
     {
         jsonContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

         using (HttpResponseMessage response = await client.PostAsync("https://android.googleapis.com/gcm/send", jsonContent))
         {
            var reponseString = await response.Content.ReadAsStringAsync();
         }
     }
}

how to do this? I am really struggling and the following statement

client.DefaultRequestHeaders.Add("Authorization", "key=" + apiKey);

thrown the following exception

An exception of type 'System.FormatException' occurred in System.Net.Http.dll but was not handled in user code

Answer

Hakan Fıstık picture Hakan Fıstık · Aug 23, 2015

I solved this by the following line of code.

client.DefaultRequestHeaders.Authorization =
       new AuthenticationHeaderValue("key", "=" + apiKey);