Ich muss einen JSON von einem Client auf einen Server POSTEN. Ich benutze Python 2.7.1 und simplejson. Der Client verwendet Requests. Der Server ist CherryPy. Ich kann einen fest codierten JSON vom Server abrufen (Code nicht gezeigt), aber wenn ich versuche, einen JSON auf den Server zu POSTEN, erhalte ich "400 Bad Request".
Hier ist mein Kundencode:
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)
Hier ist der Servercode.
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())
Irgendwelche Ideen?
__init__
mit einem content
Argument auf (und beansprucht dies nicht in dem von Ihnen angegebenen Link). In dem detaillierten Beispiel, das sie haben, gibt der Benutzer den Code an, der aufruft, __init__
und liefert die Argumente, die wir hier nicht gesehen haben, sodass ich keine Ahnung habe, in welchem Zustand sich Ihr Objekt befindet, wenn Ihr # this works
Kommentar relevant ist.
cherrypy.quickstart(Root(), '/', conf)
.