添加HTTP标头的HttpClient [英] Adding Http Headers to HttpClient

查看:114
本文介绍了添加HTTP标头的HttpClient的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所有

我需要的HTTP标头添加到HttpClient的之前,我发送给Web服务的请求。我该怎么做,对于单个请求(而不是在HttpClient的所有将来的请求)?我不知道这甚至有可能。

  VAR的客户=新的HttpClient();
VAR任务=
    client.GetAsync(http://www.someURI.com)
    .ContinueWith((taskwithmsg)= GT;
    {
        VAR响应= taskwithmsg.Result;        VAR jsonTask = response.Content.ReadAsAsync<&JSONObject的GT;();
        jsonTask.Wait();
        VAR的JSONObject = jsonTask.Result;
    });
task.Wait();


解决方案

创建一个的Htt prequestMessage ,设置方法 GET ,设置你的头,然后用 SendAsync 而不是 GetAsync

  VAR的客户=新的HttpClient();
VAR要求=新的Htt prequestMessage(){
                                            RequestUri =新的URI(http://www.someURI.com),
                                            方法= HttpMethod.Get,
                                        };
request.Headers.Accept.Add(新MediaTypeWithQualityHeaderValue(text / plain的));
VAR任务= client.SendAsync(要求)
    .ContinueWith((taskwithmsg)= GT;
    {
        VAR响应= taskwithmsg.Result;        VAR jsonTask = response.Content.ReadAsAsync<&JSONObject的GT;();
        jsonTask.Wait();
        VAR的JSONObject = jsonTask.Result;
    });
task.Wait();

All:

I need to add http headers to the HttpClient before I send a request to a web service. How do I do that for an individual request (as opposed to on the HttpClient to all future requests)? I'm not sure if this is even 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();

解决方案

Create a HttpRequestMessage, set the Method to GET, set your headers and then use SendAsync instead of 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();

这篇关于添加HTTP标头的HttpClient的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆