2013-10-30 2 views
7

में एक कोणीय POST अनुरोध का विश्लेषण कैसे करें Google App Engine WebApp2 में मेरे कोणीय POST अनुरोध से डेटा कैसे प्राप्त करूं? self.request.body एक स्ट्रिंग देता है, और self.request.get(key) कुछ भी नहीं देता है।WebApp2

कोणीय कोड है कि पोस्ट प्रस्तुत है:

$http.post("/mail", {request_name: 'Test Name', request_body: 'Test Body'}); 

तब मेरे WebApp2 हैंडलर में इन दो पंक्तियों:

print "1: " + self.request.body 
print "2: " + self.request.get('request_name') 

प्रिंट इस:

1: {"request_name":"Test Name","request_body":"Test Body"} 
2: 

क्या सबसे अच्छा है पोस्ट बॉडी से डेटा प्राप्त करें? या मुझे अलग-अलग अनुरोध भेजना चाहिए?

उत्तर

18

अपना पहला प्रिंट से परखने के बाद, ऐसा लगता है कि कोणीय JSON प्रारूप में डेटा भेज रहा है। Webapp2 आपके लिए इस डेटा को पार्स नहीं करेगा। अपने विशेष अनुरोध के लिए, आप कर सकते हैं:

import json 
d = json.loads(self.request.body) 
v = d.get(key) 

आप self.request.POST.get(key) का उपयोग कर पोस्ट डेटा का उपयोग करने में सक्षम होना चाहते हैं, तो आप शायद प्रपत्र डेटा के रूप में डेटा सबमिट करने की जरूरत है। इसके बारे में अधिक जानकारी के लिए this SO answer देखें।

0

मैं हमेशा self.request.get का उपयोग करता हूं और जीईटी/पोस्ट विधि से डेटा प्राप्त करने में सक्षम हूं, हो सकता है कि आप अलग-अलग प्रारूप में डेटा भेज सकें जो केवल self.request.body द्वारा पहुंचा जा सके?

+0

क्रोम देव उपकरण कहते हैं कि अनुरोध 'एप्लिकेशन/जेसन; अक्षरसेट = यूटीएफ -8' है – benshope

0

आप इस कोशिश कर सकते हैं:

self.request.POST.get(key) # POST requests 
self.request.GET.get(key) # GET requests 
संबंधित मुद्दे