Сериализация ASP.NET 3.5 Ajax JSON - PullRequest
       13

Сериализация ASP.NET 3.5 Ajax JSON

1 голос
/ 18 февраля 2010

У меня есть веб-сайт, который отлично работает по встроенным спецификациям, но с более широким использованием ключей для SIM-карт я (я не буду первым, кто потянет его за это) столкнулся с проблемой уничтожения сайтов ... (хорошо, хорошо, хорошо ... возможно, дневная работа)

Когда мобильный провайдер получает запрос на файл, он передается через очень умное приложение, которое по существу сводит его к «просто» функционалу. Это возвращается, и файл работает как ожидалось, даже если он был немного изменен (или сильно в случае изображений).

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

нормальный запрос: Content-Type application / json; кодировка = UTF-8 Запрос прокси SIM: Content-Type text / xml; кодировка = UTF-8

проблема номер один с этим запросом требует глагол в web.config, включающий GET / POST (легко добавляется)

выдает номер два с этим, запрос GET построен следующим образом: www.site.com? A.asmx / function? Value = "значение" сериализатор JSON понимает, что это строковый тип, поэтому он удаляет добавленные кавычки и принимает параметр; если сериализатор не используется, он фактически добавляет дополнительные кавычки "\" значение \ "". (Легко исправить)

Проблема номер три: возвращаемое значение - XML, а не JSON. Требуется много работы, но можно исправить, если я не смогу найти другой путь.

Я только что прочитал W3 для HTTP-заголовка «Cache-Control», и, очевидно, я могу отправить «no-transform» и (при условии, что они соответствуют) прокси-сервер его проигнорирует. Это было бы фантастически.

Вопрос в том ... Как изменить значение заголовка запроса GET через Sys.Net.WebServiceProxy.invoke ()?

Также есть ли у кого-нибудь опыт с этим? Интернет показывает мало дискуссий на эту тему.

Большое спасибо за любые ответы и извините за стену текста для вопроса в одну строку ... просто скрестив пальцы, кто-то сталкивался с этим раньше.

1 Ответ

0 голосов
/ 20 декабря 2010

Есть одна работа вокруг.

Редактировать файл, в котором хранится функция Sys.Net.WebServiceProxy.invoke.

и поставить следующую строку:

request.get_headers()['Cache-Control'] = 'no-transform';

после

var request = new Sys.Net.WebRequest();
...