2017-03-22 1 views
1

Je suis nouveau sur ASP.NET Web API 2. J'essaie d'accéder à une API tierce, donc pour y accéder d'abord je dois passer un jeton d'autorisation dans le en-tête avec l'URL de l'API. Je suis capable d'accéder aux données avec Postman mais je suis incapable de le faire avec Code.Comment passer les valeurs d'en-tête dans l'API web à l'aide de HttpClient

Voici mon code, je ne suis pas sûr si je vais dans la bonne direction. Toute aide serait appréciée.

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

Afficher la demande brute (assainie) qui fonctionne avec l'homme de poste – Nkosi

Répondre

2

Si le réglage de la tête d'autorisation par défaut du HttpClient pour toutes ses demandes utilisent un AuthenticationHeaderValue ensemble sur la client.DefaultRequestHeaders.Authorization

comme dans l'exemple suivant ...

//...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. 

Toute demande faite en utilisant le client aura un en-tête d'autorisation

Authorization Token MyToken