2012-01-20 4 views
1

Я пытаюсь использовать веб-службу OData для веб-сайтов, которая представляет собой XML (на основе протокола AtobPub). У меня нет доступа к серверу, и поэтому я не могу включить компрессию (я знаю, что он не установлен). Некоторые из полезных нагрузок довольно велики.OData Feed (не в моем распоряжении) - Могу ли я сжимать (gzip) или отправлять его через JSON?

Мне интересно, что можно сделать с точки зрения разработчика на стороне клиента, чтобы лучше использовать эти сервисы. Вручную сжать и распаковать полезную нагрузку xml? Как насчет JSON, это возможно?

Любой совет будет очень благодарен.

ОБНОВЛЕНИЕ (02/29/2012): После одного ответа до сих пор я хотел бы уточнить, что я являюсь потребителем этих услуг, а не продюсером. Существует строгое ограничение на серверы, на которых размещены эти службы и приложения, и, к сожалению, сжатие не установлено, и поэтому службы xml проходят через не-gzipped (вообще не сжимаются). Серверы неоднородны с Linux и Windows в миксе. Как разработчик, создавая DAL, BLL, UI и т. Д., Что я могу сделать, чтобы убедиться, что запросы/ответы сжаты? Реализовать с помощью собственного алгоритма/функции сжатия GZip и декомпрессии XML-сообщений?

ответ

0

Если сервер поддерживает его, вы сможете запросить JSON. Как правило, устанавливая заголовок Accept для вашего запроса в application/json. Или некоторые серверы даже поддерживают добавление $ format = json к URL для этой цели.

+0

Спасибо Vitek за ваш ответ, но я не верю, что это помогает в моем случае. Я отметил, что я не контролирую ни один из этих серверов. Наши вызовы служб проходят через несколько серверов, например. Linux и Windows. Что касается моих служб данных WCF, можно ли каким-либо образом реализовать собственное сжатие и забыть о любой интеграции с сервером? Если да, то где были бы лучшие плагины? Как насчет некоторых привязок в файлах конфигурации? – user118190

+0

@ user118190 Этот параметр 'application/json' в заголовке Accept не имеет ничего общего с сервером, это делается на стороне клиента. OData поддерживает как Atom, так и Json по умолчанию, вам просто нужно запросить его в заголовке запроса. – Seph

+0

Прошло некоторое время с тех пор, как я отправил что-нибудь на это, но задавался вопросом о первой части моего вопроса, то есть о сжатии данных (как при отправке, так и при получении). Я вижу, что многие службы входят в gzip, но хотели бы узнать подробности, спасибо. – user118190

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