2017-03-22 5 views
1

Ich bin neu in ASP.NET Web API 2. Ich versuche auf eine API von Drittanbietern zugreifen, so dass ich zuerst einen Autorisierungs-Token in der Header mit der API-URL. Ich kann mit Postman auf die Daten zugreifen, aber ich kann es nicht mit Code machen.Wie übergeben Header-Werte in Web-API mit HttpClient

Folgendes ist mein Code, ich bin mir nicht sicher, ob ich in die richtige Richtung gehe. Jede Hilfe wäre willkommen.

using (var client = new HttpClient()) 
{ 
    client.BaseAddress = new Uri("Url"); 
    client.DefaultRequestHeaders.Accept.Clear(); 
    client.DefaultRequestHeaders.Accept.Add(new HttpContext.Current.Request.Headers.Add("Authorization", "Token "+ "MyToken"); 
    var re = Request; 
    var headers = re.Headers; 

    if (headers.Contains("Token")) 
    { 
     string token = headers.GetValues("Token").First(); 
    } 

    return null; 

} 
+0

Zeigen Sie die (bereinigte) unformatierte Anforderung an, die mit Post-Manager funktioniert – Nkosi

Antwort

2

Wenn die Standard-Berechtigungs Header des HttpClient für alle Anfragen Einstellung einen AuthenticationHeaderValue Satz auf dem client.DefaultRequestHeaders.Authorization

wie im folgenden Beispiel ...

//...other code removed for brevity 

var tokenType = "Token"; //Other APIs use Bearer or other auth types. 
var token = "MyToken"; 
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(tokenType, token); 

//...other code removed for brevity. 

Alle Anfragen unter Verwendung Der Client verfügt über einen Berechtigungsheader

Authorization Token MyToken 
Verwandte Themen