189

Web サービスにリクエストを送信する前に、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();
4

3 に答える 3

294

を作成し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();
于 2012-08-19T00:31:52.727 に答える
-4

リクエスト時にカスタム ヘッダーを設定するには、カスタム ヘッダーを使用してリクエストを作成してから、それを httpclient に渡して http サーバーに送信します。例えば:

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

デフォルトのヘッダーは、サーバーへのリクエストごとに送信する SET ON HTTPCLIENT です。

于 2019-12-16T15:08:34.010 に答える