2010-02-03 15 views
7

मैंने सोचा था कि पोस्ट पोस्ट करते समय एक पोस्ट ने HTTP हेडर में सभी जानकारी भेजी थी (मुझे इस विषय पर स्पष्ट रूप से सूचित नहीं किया गया है), इसलिए मैं उलझन में हूं कि आपको डेटा को key=value&key2=value2 प्रारूप में urlencode() क्यों करना है। कैसे काम करता है कि पोस्ट का उपयोग कर ?: भूमिका निभाते हैं स्वरूपणपायथन: urllib2.urlopen (यूआरएल, डेटा) आपको डेटा को urllib.urlencode() क्यों करना है?

# Fail 
data = {'name': 'John Smith'} 
urllib2.urlopen(foo_url, data) 

लेकिन

# Success 
data = {'name': 'John Smith'} 
data = urllib.urlencode(data) 
urllib2.urlopen(foo_url, data) 

उत्तर

9

यह "सामग्री प्रकार" से संबंधित है हैडर: ग्राहक कैसे पोस्ट डेटा इनकोडिंग की एक विचार होना आवश्यक है वरना यह कैसे यह कैसे डिकोड करने के लिए पता होगा?

ऐसा करने का मानक तरीका एप्लिकेशन/एक्स-www-form-urlencoded एन्कोडिंग प्रारूप के माध्यम से है।

अब, अगर सवाल यह है कि "क्यों हम एन्कोड करने के लिए की जरूरत है?", जवाब है, "क्योंकि हम HTTP कंटेनर में पेलोड चित्रित करने के लिए सक्षम होना चाहिए"।

2

डाटा मानक आवेदन/x-www फार्म-urlencoded प्रारूप में होना चाहिए। urlencode आपके तर्कों को एक यूआरएल-एन्कोडेड स्ट्रिंग में परिवर्तित करता है।

संबंधित मुद्दे