C# .NetCore HttpClient 如何设置请求的 Content-Type、Accept 标头

方式一:

        这篇文章介绍了如何使用 C# 中的 HttpClient 发出具有特定内容类型的 HTTP 请求。使用 HttpClient,您可以使用内置扩展方法PostAsJsonAsync或PostAsXmlAsync POST JSON 或 XML ,这将分别将内容类型设置为application/json和。下面是application/xml如何使用 POST JSON 的示例:PostAsJsonAsync

var httpClient = new HttpClient();

var jsonAsString = "{ \"text\":\"Some text\"}";

var response = await httpClient.PostAsJsonAsync("/someurl", jsonAsString);

        上面的代码还可以将对象作为参数而不是字符串,使用字符串是为了简单起见。如果您希望使用不同于 JSON 和 XML 的内容类型发出请求,则可以将StringContent与基本PutAsync或PostAsync结合使用。下面是内容类型为 的 StringContent 的示例text/plain:

var httpClient = new HttpClient();

var content = new StringContent("This is plain text!", Encoding.UTF8, "text/plain");

var response = await httpClient.PostAsync("/someurl", content);

        使用 JSON 执行相同操作的等效且详细的方法如下,由于第一个代码示例中的扩展方法,这是不必要的:

var httpClient = new HttpClient();

var jsonAsString = "{ \"text\":\"Some text\"}";

var jsonContent = new StringContent(jsonAsString, Encoding.UTF8, "application/json");

var response = await httpClient.PostAsync("/someurl", jsonContent);

方式二:

请注意,下面的示例在两个地方添加了“application/json”——用于 Accept 和 Content-Type 标头。 

var client = new HttpClient();

client.BaseAddress = new Uri("http://example.com/");

// ACCEPT header
client.DefaultRequestHeaders.Accept.Add(
     new MediaTypeWithQualityHeaderValue("application/json"));

var request = new HttpRequestMessage(HttpMethod.Post, "relativeAddress");

// CONTENT-TYPE header
request.Content = new StringContent("{\"name\":\"John Doe\",\"age\":33}", 
                     Encoding.UTF8, "application/json");

client.SendAsync(request).ContinueWith(responseTask => 
        Console.WriteLine("Response: {0}", responseTask.Result); ); 

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值