web-dev-qa-db-fra.com

Ajouter des en-têtes HTTP à HttpClient

Tout:

Je dois ajouter des en-têtes http à HttpClient avant d'envoyer une demande à un service Web. Comment puis-je faire cela pour une requête individuelle (par opposition à HttpClient pour toutes les requêtes futures)? Je ne sais pas si c'est même possible. 

var client = new HttpClient();
var task =
    client.GetAsync("http://www.someURI.com")
    .ContinueWith((taskwithmsg) =>
    {
        var response = taskwithmsg.Result;

        var jsonTask = response.Content.ReadAsAsync<JsonObject>();
        jsonTask.Wait();
        var jsonObject = jsonTask.Result;
    });
task.Wait();
124
Ryan Pfister

Créez une HttpRequestMessage, définissez la méthode sur GET, définissez vos en-têtes puis utilisez SendAsync au lieu de GetAsync.

var client = new HttpClient();
var request = new HttpRequestMessage() {
                                            RequestUri = new Uri("http://www.someURI.com"),
                                            Method = HttpMethod.Get,
                                        };
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("text/plain"));
var task = client.SendAsync(request)
    .ContinueWith((taskwithmsg) =>
    {
        var response = taskwithmsg.Result;

        var jsonTask = response.Content.ReadAsAsync<JsonObject>();
        jsonTask.Wait();
        var jsonObject = jsonTask.Result;
    });
task.Wait();
204
Darrel Miller

Vous pouvez également ajouter un en-tête.

            //using (var client = new HttpClient())
{
 client.DefaultRequestHeaders.Add("apikey","xxxxxxxxx");
 }           //       
0
Taran