WCF ResponseFormat JSON Возвращает Json в Fiddler, XML в Chrome / Firefox! - PullRequest
6 голосов
/ 09 февраля 2011

Привет, у меня есть проект WCF Rest 4.0.По какой-то причине у меня есть веб-сервис, который должен возвращать Json, и это происходит, если я нажимаю на конечную точку через fiddler, но через firefox или chrome, если я набираю адрес, я получаю xml.Что происходит ???

Спасибо за любую помощь!Вот код.

Соответствующий веб-сервис:

  [OperationContract]
  [WebGet(UriTemplate = "",                  
          ResponseFormat = WebMessageFormat.Json,
          RequestFormat = WebMessageFormat.Json)]

        public SomeObject [] GetObjects()
        {
              .....

Код объекта:

[DataContract]
public class SomeObject
{      
        [DataMember]
        public string Date { get; private set; }

        ....
            public String Site { get; private set; }

Ответы [ 4 ]

2 голосов
/ 11 февраля 2011

Я разместил это как комментарий, но я добавлю более подробную информацию здесь.

Ваш браузер, скорее всего, отправляет этот заголовок:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Обратите внимание, что в нем не упоминается JSON, но упоминается XML.

Ваш клиент WCF, скорее всего, использует другой заголовок "Accept", который отдает предпочтение json. Вы можете проверить это в Fiddler.

1 голос
/ 11 февраля 2011

Если вы используете .NET 4.0 framework, это решение: http://karnicki.eu/2011/02/rest-wcf-net-4-0-service-with-json-jsonp-for-jquery/

WCF теперь имеет встроенную поддержку JSONP с минимальными настройками.

По сути, вам просто нужно отредактировать / добавить две записи в файле конфигурации, authenticationMode и StandardEndpoint, и вуаля, вы можете просмотреть ответ json из службы WCF в любом браузере.

РЕДАКТИРОВАТЬ: исходная ссылка не работает - это может помочь: http://blog.shutupandcode.net/?p=696

0 голосов
/ 05 марта 2013

У меня была такая же проблема. Я использовал конфигурацию WCF без svc .

Мне пришлось изменить это логическое значение в web.config с true:

<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>

в ложь:

<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="false"/>
0 голосов
/ 09 февраля 2011

Браузеры не могут отображать необработанный JSON, однако вы можете использовать такой инструмент, как средство просмотра JSON (http://jsonviewer.codeplex.com/wikipage?title=Home&ProjectName=jsonview) или Fiddler также подходит для этой работы.

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