Когда я отправляю сообщение POST в GAE с параметрами json, используя POST, QueryDict, анализируемый сервером, не анализируется как json ...
Я обнаружил похожую проблему в этой проблеме: POST-запрос iphone Json к серверу Django создает QueryDict в QueryDict
Возможно, это проблема с конфигурацией GAE.У меня Python 2.6.6 с последней версией GAE.Прежде всего, если я получаю POST с помощью инструмента nc, 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'']}>
Поскольку вы можете проверить обработчик django, проанализируйте 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']
, но, может быть, вы поможете мне найти другое ...
Спасибо,