7

是否可以在 .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 部分。

4

1 回答 1

16

MediaTypeWithQualityHeaderValue有一个名为 Parameters 的属性,您可以在其中添加 'odata=verbose' 参数。

其他简单的方法是调用MediaTypeWithQualityHeaderValueParse/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
}
于 2013-03-06T01:02:57.363 回答