Сжатие Odata - есть ли поддержка? (Службы данных WCF 5.0 для WinRT)

Контекст: в настоящее время используется WCF Data Services 5.0 с Odata для приложения Магазина Windows 8.

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

  • двоичная сериализация не поддерживается.

  • json не поддерживается (библиотека вызывает 'application/json' в настоящее время не поддерживается в заголовке Content-Type)

  • JSON Lite еще не выпущен

  • добавление gzip-запросов в http-ответ работает (сервер возвращает сжатые данные), но lib на стороне клиента, похоже, не хочет десериализовать его. (XML-разбор исключений)

Моя последняя попытка сегодня состояла в том, чтобы попытаться получить http-ответ и самостоятельно десериализовать поток (GZipStream недоступен, но я знаю, что есть сторонние альтернативы) - но я не смог найти ЛЮБОЙ Microsoft.Data. События / переопределения Services.Client.WindowsStore, которые представили бы мне поток.

Я хотел внедрить OData, чтобы использовать прирост производительности и эффективности по сравнению со стандартными веб-службами WCF, но без возможности сжатия потока по проводам я не получаю никакого.

У кого-нибудь есть опыт с этим или совет, как подойти?

1 ответ

Следовали ли вы тем же шагам здесь, чтобы получить ответ json. Клиент должен отправить заголовок MaxDataServiceVersion: http://blogs.msdn.com/b/astoriateam/archive/2012/04/11/what-happened-to-application-json-in-wcf-ds-5-0.aspx

Я также проверил, что Odata 5.1.0 была выпущена на nuget. Это имеет лучшую поддержку JSON: https://nuget.org/packages/Microsoft.Data.Services/5.1.0

Другой вариант - использовать веб-API asp.net и попробовать поддержку odata: http://www.nuget.org/packages/Microsoft.AspNet.WebApi.OData

Другие вопросы по тегам