HttpClient请求头自定义
Posted
技术标签:
【中文标题】HttpClient请求头自定义【英文标题】:HttpClient request header customisation 【发布时间】:2013-03-06 00:54:53 【问题描述】:是否可以在 .Net/Web Api 中将 HttpClient 的请求 ACCEPT 标头设置为包含“application/json;odata=verbose”?
我知道如何设置请求媒体类型
HttpClient client = new HttpClient(handler);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
但是如何设置 odata=verbose 部分?我似乎无法在网上找到任何解决方案来做到这一点。
我必须改用 HttpWebRequest 吗?基本上我需要调用sharepoint 2013 rest api,并且需要odata=verbose部分。
【问题讨论】:
【参考方案1】:MediaTypeWithQualityHeaderValue
有一个名为 Parameters 的属性,您可以在其中添加 'odata=verbose' 参数。
其他简单的方法是调用 MediaTypeWithQualityHeaderValue
的 Parse/TryParse 方法,您可以提供整个“application/json;odata=verbose”媒体类型字符串。
这是一个使用 Parse 的示例
using (HttpClient httpClient = new HttpClient())
//Setup Accept Header
MediaTypeWithQualityHeaderValue acceptHeader = MediaTypeWithQualityHeaderValue.Parse("application/json;odata=verbose");
httpClient.DefaultRequestHeaders.Accept.Add(acceptHeader);
//... do other stuff
【讨论】:
谢谢,这正是我想要的。以上是关于HttpClient请求头自定义的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的类型错误:无法读取 getOriginalError 处未定义的属性“ngOriginalError”-当 httpClient 返回字符串时