Как заставить запросы быть JSON? То есть как заблокировать тело XML? - PullRequest
0 голосов
/ 04 августа 2009

У меня есть служба REST WCF и клиентское приложение WCF для нее.

Моя операция имеет атрибут WebGet со следующими свойствами: BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json

Однако, когда я использую клиент WCF, запрос выполняется с телом в формате XML! Это нежелательно! Как я могу изменить его на использование JSON?

Кроме того, я хочу также запретить прием XML на стороне сервера - как я могу это сделать? Я бы ожидал указать RequestFormat, чтобы сделать это, но, похоже, это всего лишь предложение?

Редактировать: не важно, я идиот. Я искал неправильный контракт на операцию - правильные были в #region, который я не расширил ... клиент работает нормально. Точка сервера все еще действительна, но в контексте этого вопроса, вероятно, лучше рассмотреть этот вопрос закрытым.

Ответы [ 2 ]

2 голосов
/ 04 августа 2009

Что значит, что вы указываете [WebGet] и получаете запрос с телом XML? Запрос GET не может иметь тела (любые входные данные должны быть частью пути URL или строки запроса). Вы говорите о [WebInvoke]?

Что касается применения формата запроса на стороне сервера, то сейчас я думаю, что WCF по умолчанию обрабатывает оба формата независимо от того, что вы указали в контракте. Вы, вероятно, можете применить его самостоятельно, посмотрев на сообщение запроса тип содержимого и отклонив его, если это «text / xml» (или что-то иное, чем application / json в этом отношении).

1 голос
/ 15 января 2010

Неважно, я идиот. Я искал неправильный контракт на операцию - правильные были внутри области, которую я не расширил ... клиент работает нормально. Точка сервера все еще действительна, но в контексте этого вопроса, вероятно, лучше рассмотреть этот вопрос закрытым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...