J'ai besoin de POSTER un JSON d'un client vers un serveur. J'utilise Python 2.7.1 et simplejson. Le client utilise des demandes. Le serveur est CherryPy. Je peux obtenir un JSON codé en dur à partir du serveur (code non illustré), mais lorsque j'essaye de POSTER un JSON sur le serveur, j'obtiens "400 Bad Request".
Voici mon code client:
data = {'sender': 'Alice',
'receiver': 'Bob',
'message': 'We did it!'}
data_json = simplejson.dumps(data)
payload = {'json_payload': data_json}
r = requests.post("http://localhost:8080", data=payload)
Voici le code du serveur.
class Root(object):
def __init__(self, content):
self.content = content
print self.content # this works
exposed = True
def GET(self):
cherrypy.response.headers['Content-Type'] = 'application/json'
return simplejson.dumps(self.content)
def POST(self):
self.content = simplejson.loads(cherrypy.request.body.read())
Des idées?
__init__
méthodes de classe avec un content
argument (et ne prétend pas le faire dans le lien que vous fournissez). Dans l'exemple détaillé qu'ils ont, l'utilisateur fournit le code qui appelle __init__
et fournit les arguments, que nous n'avons pas vu ici, donc je n'ai aucune idée de l'état dans lequel se trouve votre objet lorsque votre # this works
commentaire est pertinent.
cherrypy.quickstart(Root(), '/', conf)
.