ASP.NET Web API:更改请求标头

时间:2015-05-15 15:27:38

标签: asp.net http asp.net-web-api

我无法控制的JavaScript客户端是将不正确的HTTP请求标头发送到我的Web API服务。更具体地说,它使用的是发送不正确的OData标头的库。

在我的服务到达之前,有没有办法拦截HTTP请求?我可以添加/删除/更新标题或查询字符串信息吗?

例如,如果我收到以下HTTP标头:

GET /Some/API HTTP/1.1
Host: myhost.com:80
MaxDataServiceVersion: 2.0

我想知道如何在OData库接管之前将其修改为以下内容:

GET /Some/API HTTP/1.1
Host: myhost.com:80
MaxDataServiceVersion: 4.0

1 个答案:

答案 0 :(得分:0)

标题不正确。您的客户端需要OData v2服务,即使您操作了标头,它也可能无法理解服务器的响应。

但是如果你真的想尝试那条路线,你可以使用一个简单的HTTP代理来重写标题。

如果这样做,请确保您的OData服务器支持Atom格式,因为OData JSON格式在版本2和版本4之间完全更改,因此JavaScript客户端无法理解它。 Atom格式也发生了变化,但如果客户端的解析器非常宽松,它可能会起作用。