2015-05-15 3 views
0

Клиент JavaScript, с которым я не контролирую, отправляет неверные заголовки HTTP-запросов в мои службы веб-API. Более конкретно, это использование библиотеки, которая отправляет неправильный заголовок OData.ASP.NET Web API: заголовок запроса изменений

Есть ли способ перехватить 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 

ответ

0

В заголовок не является неправильным. Ваш клиент ожидает службу OData v2, и даже если вы управляете заголовками, она, вероятно, не сможет понять ответ с вашего сервера.

Но вы можете использовать простой HTTP-прокси для перезаписи заголовков, если вы действительно хотите попробовать этот маршрут.

Если вы это сделаете, убедитесь, что ваш сервер OData поддерживает формат Atom, поскольку формат OData JSON полностью изменился между версиями 2 и 4, поэтому JavaScript-клиент не сможет понять это. Формат Atom также изменился, но если парсер клиента очень мягкий, он может работать.

+0

Подразумевается, что версия OData касается, но мы считаем, что в используемой нами библиотеке есть ошибка, которая характерна для заголовка MaxDataServiceVersion, который мы надеемся обойти, изменив заголовки запросов. Я надеялся, что вы скажете, что использование фильтра ASP.NET может изменять входящие заголовки запросов, но мы всегда можем исследовать прокси-маршрут. –

Смежные вопросы