Когда я отправить сообщение POST на GAE с параметрами JSon с использованием POST QueryDict разобран сервером не разобранные как JSON ...Проблем для синтаксического анализа сообщения POST JSon Джанго/GAE
Я нашел аналогичную проблема в этом выпуске: iphone Json POST request to Django server creates QueryDict within QueryDict
Возможно, проблема связана с конфигурацией GAE. У меня Python 2.6.6 с последней версией GAE. Прежде всего, если я получаю POST с помощью инструмента нанокристаллов, сообщение POST совершенно:
POST /url/ HTTP/1.1
Accept: application/jsonrequest
Content-type: application/json
Accept-Encoding: gzip
Content-Length: 458
Host: 192.168.1.1:8080
Connection: Keep-Alive
{"id":"xxx","jsonrpc":"2.0","method":"XXX","params":{...}]}
И в консоли сервера я получаю следующие сообщения:
DEBUG 2010-09-16 06:47:05,891 dev_appserver.py:1693] Access to module file denied: /usr/lib/pymodules/python2.6/simplejson
DEBUG 2010-09-16 06:47:05,894 dev_appserver.py:1700] Could not import "_json": Disallowed C-extension or built-in module
DEBUG 2010-09-16 06:47:05,897 dev_appserver.py:1700] Could not import "_json": Disallowed C-extension or built-in module
И идею ¿?
ДИКТ запрос на сервер <QueryDict: {u'{"id":"xxx","jsonrpc":"2.0","method":"XXX","params":{...}}': [u'']}>
Как вы можете проверить обработчик Джанго разбора JSON запроса POST в качестве ключа нового словаря ...
В связанном вопросе есть еще Следующее решение ...
hack_json_value = request.POST.keys()[0]
hack_query_dict = json.loads(hack_json_value)
foo = hack_query_dict['foo']
bar = hack_query_dict['bar']
но, возможно, вы можете помочь мне найти еще один ...
Спасибо,
На самом деле вы не нужно загрузить simplejson с кодом ,Он доступен непосредственно в App Engine через: из django.utils import simplejson – Franck
Существует также ответ на другой вопрос, предоставляющий такое же решение: http://stackoverflow.com/questions/1208067/wheres-my-json-data-in- my-incoming-django-request/3244765 # 3244765 – Franck
Да, извините, я уже использую simplejson. Btw этот метод simplejson.loads (request.raw_post_data) работает отлично. Благодаря!!! –