2013-07-01 9 views
19

मेरे पास एक ही फॉर्म में एक फॉर्म-डेटा और फ़ाइल भी भेजी जा सकती है। पूर्व के लिए, {अवधि: 2000, फ़ाइल: test.wav}। मैंने पाइथन अनुरोधों का उपयोग करके मल्टीपार्ट/फॉर्म-डेटा पोस्टिंग पर कई धागे देखे। वे उपयोगी थे, खासकर this oneपाइथन अनुरोधों का उपयोग करके डेटा मल्टीपार्ट डेटा पोस्ट: कोई मल्टीपार्ट सीमा नहीं मिली

मेरे नमूना अनुरोध के रूप में नीचे है:

files = {'file': ('wavfile', open(filename, 'rb'))} 
    data = {'duration': duration} 
    headers = {'content-type': 'multipart/form-data'} 
    r = self.session.post(url, files=files, data=data, headers=headers) 

लेकिन जब मैं ऊपर कोड निष्पादित, मैं इस त्रुटि मिलती है:

5: 59: 55.338 DBG 09,900 [डीबग] हैंडलर से अपवाद का समाधान करना [ शून्य]: org.springframework.web.multipart.MultipartException: मल्टीपार्ट सर्वलेट अनुरोध का विश्लेषण नहीं कर सका; नेस्टेड अपवाद org.apache.commons.fileupload.FileUploadException है: अनुरोध अस्वीकार कर दिया गया था क्योंकि कोई मल्टीपार्ट सीमा नहीं मिली थी।

तो मेरे प्रश्न हैं: 1) मैं भेजे जा रहे अनुरोध की सामग्री कैसे देख सकता हूं? वायरसहार्क का उपयोग नहीं कर सका, यह नेटवर्क पर नहीं है। 2) एनकोडेड डेटा में सीमा क्यों लापता है? क्या मुझे कुछ याद आया, कृपया बताएं।

उत्तर

35

आपको कभी भी वह हेडर सेट नहीं करना चाहिए। हमने हेडर को सीमा के साथ ठीक से सेट किया है। यदि आप उस शीर्षलेख को सेट करते हैं, तो हम नहीं करेंगे और आपका सर्वर नहीं जानता कि किन सीमा की उम्मीद है (क्योंकि यह हेडर में जोड़ा गया है)। अपने कस्टम सामग्री-प्रकार हेडर को हटाएं और आप ठीक होंगे।

6

स्पष्ट "मल्टीपार्ट/फॉर्म-डेटा" के साथ सामग्री-प्रकार शीर्षलेख लेना काम किया!

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