मुझे क्लाइंट से सर्वर तक एक JSON पोस्ट करने की आवश्यकता है। मैं पायथन 2.7.1 और सिंपलसन का उपयोग कर रहा हूं। क्लाइंट अनुरोधों का उपयोग कर रहा है। सर्वर चेरी है। मैं सर्वर से एक हार्ड-कोडेड JSON प्राप्त कर सकता हूं (कोड नहीं दिखाया गया है), लेकिन जब मैं सर्वर पर JSON पोस्ट करने की कोशिश करता हूं, तो मुझे "400 खराब अनुरोध" मिलता है।
यहाँ मेरा ग्राहक कोड है:
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)
यहाँ सर्वर कोड है।
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())
कोई विचार?
__init__एक contentतर्क के साथ वर्ग के तरीकों को नहीं बुलाता है (और आपके द्वारा आपूर्ति की गई लिंक में दावा नहीं करता है)। उनके पास विस्तृत उदाहरण में, उपयोगकर्ता उस कोड की आपूर्ति करता है जो कॉल __init__करता है और तर्क प्रदान करता है, जिसे हमने यहां नहीं देखा है इसलिए मुझे नहीं पता कि आपकी # this worksटिप्पणी प्रासंगिक होने पर आपकी वस्तु किस स्थिति में है।
cherrypy.quickstart(Root(), '/', conf)।