添加以json作为格式的标题值

时间:2022-06-11 08:18:18

(1)、HttpClient 类 用于发送HTTP 请求,接收请求的响应。

(2)、HttpClient 类 派生于 HttpMessageInvoker类,此基类卖力执行 SendAsync(),SendAsync() 要领挪用是异步的,可以编写一个完全异步的系统来挪用Web处事。

2、实例

(1)、发出异步的Get 请求。

namespace InternetCommunicate { class Program { private const string baiduUrl = ""; private const string googleUrl = ""; static void Main(string[] args) { } /// <summary> /// 异步挪用Get要领 /// </summary> /// <returns></returns> public async Task GetDataSimpleAsync() { //实例化一个httpClient 东西,该东西是线程安适的, //client 东西可以措置惩罚惩罚多个请求,HttpClient 每个实例都维护本身的线程池, //HttpClient 实例之间的请求被断绝,挪用Dispose要领释放资源。 using (var client = new HttpClient()) { //挪用 GetAsync(),给他通报要挪用的要领地点,把HTTP GET 请求发送给处事器, //GetAsync() 返回一个 HttpResponseMessage东西,包罗 //(1)、标题 //(2)、状态 //(3)、内容 HttpResponseMessage response = await client.GetAsync(baiduUrl); //如果请求告成 if(response.IsSuccessStatusCode) { Console.WriteLine($"Response Status Code:{(int)response.StatusCode}" + $"{response.ReasonPhrase}"); //通过ReadAsStringAsync要领,把返回的内容检索为一个字符串。 string responseBodyAsText = await response.Content.ReadAsStringAsync(); Console.WriteLine($"Received payLoad of {responseBodyAsText.Length} characters"); Console.WriteLine(responseBodyAsText); Console.ReadLine(); } } } } }

(3)、通报httpheader(标题)

发出请求时,没有设置或转变任何标题,但HttpClient 的DefaultRequestHeaders 属性允许设置或转变标题,使用Add 要领可以给调集添加标题,设置标题和标题值后,会与HttpClient 实例发送的每个请求一起发送。

在本示例中,添加以json作为格局的标题值。代码如下:

/// <summary> /// 展示http 标题 /// </summary> /// <param></param> /// <param></param> public static void ShowHeaders(string title,HttpHeaders httpHeaders) { foreach (var header in httpHeaders) { string value = string.Join(" ", header.Value); Console.WriteLine($"Header:{header.Key} Value:{value}"); } } /// <summary> /// 设置httpHeader 通报标题的信息 /// </summary> /// <returns></returns> public async Task GetDataWithHeadersAsync() { try { using(var client = new HttpClient()) { //添加作为json数据格局的标题值 client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose"); //DefaultRequestHeaders 获取与每个请求一起发送的值 ShowHeaders("Request Headers:", client.DefaultRequestHeaders); //获取http 响应头的值 HttpResponseMessage response = await client.GetAsync(googleUrl); ShowHeaders("Response Headers:", response.Headers); } } catch (Exception ex) { throw ex; } }

(4)、用HttpMessageHandler自界说请求