2015-08-23 26 views
5

Mam następujący kod i chcę ustawić zezwolenia na żądanie POST być tak:Set Autoryzacja Nagłówek HttpClient

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(); 
     } 
    } 
} 

jak to zrobić? Ja naprawdę walczy i następujące oświadczenie

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

rzucony następujący wyjątek

wyjątek typu „System.FormatException” wystąpił w System.Net.Http.dll ale nie było traktowane kod użytkownika

+0

Czy masz włączone wyjątki pierwszej szansy? Jeśli tak, wyłącz je. –

+0

W tym celu wolałbym użyć "FormUrlEncodedContent", aby wysłać klucze i inne rzeczy, tak jakbym przesyłał formularz. https://msdn.microsoft.com/en-us/library/system.net.http.formurlencodedcontent%28v=vs.118%29.aspx –

Odpowiedz

14

Rozwiązałem to przez poniższy wiersz kodu.

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