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();
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();
Vous pouvez également ajouter un en-tête.
//using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("apikey","xxxxxxxxx");
} //