모두:
웹 서비스에 요청을 보내기 전에 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이며 모든 요청을 서버로 보냅니다.