HttpClient에 Http 헤더 추가 = new HttpClient(); var task

모두:

웹 서비스에 요청을 보내기 전에 HttpClient에 http 헤더를 추가해야합니다. HttpClient와는 달리 모든 요청에 ​​대해 개별 요청에 대해 어떻게합니까? 이것이 가능한지 확실하지 않습니다.

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();


답변

HttpRequestMessage만들고 방법을 GET으로 설정하고 헤더를 설정 한 다음 SendAsync대신 사용하십시오 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();

답변

모든 요청에 ​​대해 동일한 헤더 일 수 있거나 각 요청 후에 클라이언트를 삭제하면 다음 DefaultRequestHeaders.Add옵션을 사용할 수 있습니다 .

client.DefaultRequestHeaders.Add("apikey","xxxxxxxxx");      

답변

요청시 사용자 정의 헤더를 설정하려면 http 서버로 보내기 위해 httpclient로 전달하기 전에 사용자 정의 헤더로 요청을 빌드하십시오. 예 :

HttpClient client = HttpClients.custom().build();
HttpUriRequest request = RequestBuilder.get()
  .setUri(someURL)
  .setHeader(HttpHeaders.CONTENT_TYPE, "application/json")
  .build();
client.execute(request);

기본 헤더는 SET ON HTTPCLIENT이며 모든 요청을 서버로 보냅니다.