When I send a POST message to the GAE with a json parameters using POST the QueryDict parsed by the server is not parsed like a json ...
I found a similar problem in this issue: http://stackoverflow.com/questions/2579235/iphone-json-post-request-to-django-server-creates-querydict-within-querydict
Maybe is a problem with the GAE configuration. I've Python 2.6.6 with the last version of GAE. First of all, If I get the POST with a nc tool, the POST message is perfect:
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":{...}]}
And in the server console I receive the next messages:
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
And idea ¿?
The query dict in the server is <QueryDict: {u'{"id":"xxx","jsonrpc":"2.0","method":"XXX","params":{...}}': [u'']}>
As you can check the django handler parse the json of the POST request as a key of a new dictionary ...
In the linked issue there's the next solution ...
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']
but maybe you can help me to find another one ...
Thanks,