2015-08-23 7 views
5

ich den folgenden Code hat, und ich mag die Ermächtigung der Post-Anforderung setzen, so zu sein:Set Authorization-Header von 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(); 
     } 
    } 
} 

, wie dies zu tun? Ich bin wirklich kämpfen und die folgende Anweisung

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

die folgende Ausnahme geworfen

eine Ausnahme vom Typ ‚System.FormatException‘ aufgetreten in System.Net.Http.dll wurde aber nicht behandelt in Benutzercode

+0

Haben Sie Ausnahmen für die erste Chance aktiviert? Wenn ja, schalten Sie sie aus. –

+0

Ich selbst würde zu diesem Zweck lieber 'FormUrlEncodedContent' verwenden, um die Schlüssel und andere Dinge zu senden, als würde ich das Formular abschicken. https://msdn.microsoft.com/en-us/library/system.net.http.formulencodedcontent%28v=vs.118%29.aspx –

Antwort

14

Ich löste dies durch die folgende Codezeile.

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