c# - HttpClient 请求头自定义

标签 c# asp.net asp.net-mvc-4 asp.net-web-api dotnet-httpclient

是否可以在 .Net/Web Api 中将 HttpClient 的请求 ACCEPT header 设置为包含“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 部分是必需的。

最佳答案

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
}

关于c# - HttpClient 请求头自定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15237049/

相关文章:

asp.net - style.visibility 在 FireFox 中不起作用

html - 将 Bootstrap 网格应用于 RadioButtonList 的 ListItem

Azure 中的 ASP.NET MVC 4 和 Web API - 未找到 HTTP 资源

c# - 指定的包含路径无效。 EntityType '*Propiedad' 未声明名称为 'Nombre' 的导航属性

c# - ASP.NET:GridView 选择按钮:如何以编程方式更改按钮的属性?

c# - 服务和服务层

c# - Arduino udp ping

c# - 数组中抽象类的派生类

c# - 使用 OnValidateIdentity 对 cookie 数据执行额外的验证

c# - 登录后 MVC 重定向