2010-01-19 12 views
32

मैं अपाचे कॉमन्स HttpClient PostMethod 3.1 का उपयोग कर रहा हूं।पोस्टमेडियस setRequestBody (स्ट्रिंग) बहिष्कृत - क्यों?

setRequestBody(InputStream body) 
setRequestBody(String body) 
setRequestBody(NameValuePair[] parametersBody); 

NameValuePair एपीआई

पहले दो तरीकों अनुचित हैं:

PostMethod वर्ग में भी स्थापित करने POST पद्धति के अनुरोध शरीर के लिए तीन तरीके हैं। क्या कोई जानता है क्यों? क्योंकि अगर मैं शरीर को अनुरोध करने के लिए एक्सएमएल रखना चाहता हूं, तो NameValuePair मेरी मदद नहीं करता है।

क्या कोई कामकाज या समाधान जानता है?

उत्तर

45

जावाडोक का कहना है:

पदावनत। setRequestEntity (RequestEntity) का उपयोग

RequestEntity कार्यान्वयन करने वालों का एक बहुत, अर्थात् है:

ByteArrayRequestEntity, FileRequestEntity, InputStreamRequestEntity, MultipartRequestEntity, StringRequestEntity

उपयोग एक है कि आप सूट:

  • यदि आपका एक्सएमएलमें है 10, StringRequestEntity
  • का उपयोग करता है, तो यह एक फ़ाइल में है, FileRequestEntity

और इतने पर इस्तेमाल करते हैं।

+0

'StringRequestEntity' सुझाव में नहीं मिला। –

3

हाँ, उदाहरण के लिए हां, तो

post.setRequestEntity(new StringRequestEntity(xml)); 
बजाय

post.setRequestBody(xml); 
+8

दुर्भाग्यवश कन्स्ट्रक्टर 'स्ट्रिंगरक्वेटएन्टिटी (स्ट्रिंग)' अब भी बहिष्कृत है। इसके बजाय आपको इसका उपयोग करना होगा: 'post.setRequestEntity (नया स्ट्रिंगरक्वेटएन्टिटी (एक्सएमएल, "टेक्स्ट/एक्सएमएल", "आईएसओ -885 9 -1")); ' –

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