Devo inviare un JSON da un client a un server. Sto usando Python 2.7.1 e simplejson. Il client utilizza le richieste. Il server è CherryPy. Posso ottenere un JSON hardcoded dal server (codice non mostrato), ma quando provo a POSTARE un JSON sul server, ottengo "400 Bad Request".
Ecco il mio codice cliente:
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)
Ecco il codice del server.
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())
Qualche idea?
__init__
metodi di classe con un content
argomento (e non rivendica il link fornito). Nell'esempio dettagliato che hanno, l'utente fornisce il codice che chiama __init__
e fornisce gli argomenti, che non abbiamo visto qui, quindi non ho idea dello stato in cui si trova il tuo oggetto quando il tuo # this works
commento è rilevante.
cherrypy.quickstart(Root(), '/', conf)
.