में इनकमिंग मल्टीपार्ट/फॉर्म-डेटा पैरामीटर को पार्स करने का सुविधाजनक तरीका आने वाले अनुरोध से डेटा को पढ़ने और विश्लेषण करने का कोई सुविधाजनक तरीका है।Servlet
उदा ग्राहक पोस्ट अनुरोध
URLConnection connection = new URL(url).openConnection();
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
PrintWriter writer = null;
try {
OutputStream output = connection.getOutputStream();
writer = new PrintWriter(new OutputStreamWriter(output, charset), true); // true = autoFlush, important!
// Send normal param.
writer.println("--" + boundary);
writer.println("Content-Disposition: form-data; name=\"param\"");
writer.println("Content-Type: text/plain; charset=" + charset);
writer.println();
writer.println(param);
आरंभ मैं request.getParameter("paramName")
का उपयोग कर परम प्राप्त करने में सक्षम नहीं हूँ। निम्नलिखित कोड
BufferedReader reader = new BufferedReader(new InputStreamReader(
request.getInputStream()));
StringBuilder sb = new StringBuilder();
for (String line; (line = reader.readLine()) != null;) {
System.out.println(line);
}
लेकिन मुझे
-----------------------------29772313742745
Content-Disposition: form-data; name="name"
J.Doe
-----------------------------29772313742745
Content-Disposition: form-data; name="email"
[email protected]
-----------------------------29772313742745
भेजे अनुरोध को पार्स करने के लिए सबसे अच्छा तरीका क्या है के लिए सामग्री प्रदर्शित करता है? मैं अपना खुद का पार्सर नहीं लिखना चाहता, शायद एक तैयार समाधान है।
सावधान रहें। अपाचे साइट पर कुछ दस्तावेज गलत हैं। उदाहरण के लिए वे कहते हैं कि आप FileItemFactory ऑब्जेक्ट पर setRepository() को कॉल कर सकते हैं जो गलत है क्योंकि FileItemFactory को लागू करने वाली कोई भी वस्तु केवल एक विधि है: createItem()। तो सुनिश्चित करें कि आप javadocs भी पढ़ते हैं। – Cheruvim
'getParts()' हमेशा शून्य आइटम लौटाता है। जावा और सर्वलेट 3.0 में मल्टीपार्ट फॉर्म पुनर्प्राप्त करना इतना कठिन क्यों है? विश्वास नहीं कर सकता! – basZero
@basZero: डुप्लिकेट प्रश्न का उत्तर पहले से ही बताएगा कि यह खाली होगा। – BalusC