जावा में HTTP पोस्ट फ़ाइल सामग्री
वेब परिदृश्य में हम दो अन्य पेज के लिए सामग्री "" मिल "और" भेजें तरीका है पोस्ट ". यद्यपि में "" विधि डेवलपर्स प्राप्त जाँच का लचीलापन भी आनंद मिलता है सामग्री हो रही पारित लेकिन वहाँ डेटा भेजने के लिए सीमा है. के रूप में "" GET विधि "पोस्ट" असीमित डेटा भेजने और इस पद्धति का उपयोग हम भी बड़ी फ़ाइल भेज सकते हैं सामग्री के लिए लचीलापन भी आनंद मिलता है तुलना. यह लेख आपको सिखाने पर हम कैसे दूरस्थ मेजबान को बड़ा फ़ाइल की सामग्री भेज सकते हैं. प्राप्त यह हम URLConnection का उपयोग किया जाएगा वर्ग है कि आप दूरस्थ यूआरएल पृष्ठ के साथ कनेक्ट करने के लिए अनुमति देता है.
JSP पृष्ठ कोड
= "java.util.*,java.net.URL,java.net.URLConnection,java.net.URLEncoder,java.io.*" %> <% @ पृष्ठ आयात = "java.util .*, java.net.URL, java.net.URLConnection, java.net.URLEncoder, java.io. *"%> <% URL url; URLConnection urlConn; DataOutputStream प्रिंटआउट; DataInputStream इनपुट; / दूरस्थ स्क्रिप्ट के / यूआरएल. URL ( "http://localhost:8080/testpostdata" ) ; //testpostdata is the servlet name Url = नया (URL "" http://localhost:8080/testpostdata) testpostdata, / / नाम है servlet / / ओपन नई यूआरएल कनेक्शन चैनल. ( ) ; urlConn = यूआरएल. openConnection (); / /) चलो चलाते समय प्रणाली (RTS जानते हैं कि हम निवेश करना चाहते हैं. true ) ; urlConn. setDoInput (सच); / / हम उत्पादन करना चाहता है. true ) ; urlConn. setDoOutput (सच); / / हम नहीं चाहते कैशिंग false ) ; urlConn. setUseCaches (झूठी); / / निर्दिष्ट हेडर सामग्री लिखें. "Content-Type" , "application/x-www-form-urlencoded" ) ; urlConn. setRequestProperty ("सामग्री-Type" "आवेदन / x-www-फार्म-urlencoded"); / / भेजें पोस्ट उत्पादन. DataOutputStream ( urlConn. getOutputStream ( ) ) ; प्रिंटआउट = नए urlConn. DataOutputStream (getOutputStream ()); सामग्री = स्ट्रिंग URLEncoder . encode ( "Hitesh Agrawal" ) + "नाम =" + URLEncoder. सांकेतिक शब्दों में बदलना ("हितेश अग्रवाल") + URLEncoder . encode ( "Software Engineer" ) ; "और पेशे =" + URLEncoder. (सांकेतिक शब्दों में बदलना "सॉफ्टवेयर इंजीनियर"); content ) ; प्रिंटआउट. (writeBytes सामग्री); ; प्रिंटआउट. फ्लश (); ; प्रिंटआउट. बंद (); / / डेटा प्राप्त प्रतिक्रिया. DataInputStream ( urlConn. getInputStream ( ) ) ; इनपुट = नए urlConn. DataInputStream (getInputStream ()); Str स्ट्रिंग; null != ( ( str = input. readLine ( ) ) ) ) (जबकि बातिल =! ((इनपुट = str. ReadLine ()))) ( . println ( str ) ; सिस्टम. बाहर. Println () str; ) ; इनपुट. बंद (); %>
स्पष्टीकरण के लिए JSP कोड:
- यहाँ हम openConnection () एक यूआरएल वस्तु की विधि फोन करके URLConnection के एक वस्तु बनाने के लिए
- हम आवश्यक वस्तु विशेषताओं और शीर्ष लेख डेटा भेजने के लिए आवश्यक सेट बनाने के बाद
- मैं हेडर निर्धारित करने के बाद OutputStream पर डेटा लिख रहा हूँ. मैं अंत में प्रतिक्रिया डेटा पढ़ रहा हूँ.
testpostdata Servlet कोड
; आयात java.io. *; ; आयात javax.servlet .*; ; आयात javax.servlet.http .*; HttpServlet { सार्वजनिक वर्ग परीक्षण HTTPServlet फैली ( init ( ServletConfig config ) throws ServletException { सार्वजनिक शून्य init (ServletConfig config) ServletException फेंकता ( ( config ) ; सुपर. init (config); ) destroy ( ) { सार्वजनिक शून्य नष्ट () ( ) doPost ( HttpServletRequest request,HttpServletResponse response ) throws IOException , ServletException { सार्वजनिक शून्य अनुरोध doPost (HttpServletRequest, HttpServletResponse प्रतिक्रिया) फेंकता फेंकता है, ServletException ( request. getParameter ( "name" ) ; स्ट्रिंग नाम = अनुरोध करता हूँ. GetParameter ("नाम"); request. getParameter ( "profession" ) ; स्ट्रिंग पेशे = अनुरोध करता हूँ. GetParameter ("व्यवसाय); f0 OutputStream; = name. getBytes ( ) ; बाइट buf [] नाम =. getBytes (); FileOutputStream ( "/home/hitesh/Desktop/postcontent.txt" ) ; f0 = नए FileOutputStream ("/ घर / हितेश / डेस्कटॉप / postcontent.txt"); int i = 0 ; i < buf . length ; i ++ ) { के लिए (int i = 0, मैं <buf लंबाई., मैं + +) ( buf [ i ] ) ; f0. लिखें (buf [i]); ) ; f0. बंद (); ; बातिल = buf; ) )
स्पष्टीकरण के लिए Servlet कोड:
- doPost () में मैं पैरामीटर को पुन: प्राप्त कर रहा हूँ का उपयोग कर भेजने के request.getParameter
- जांचने के लिए कि क्या डेटा सफलतापूर्वक मैं एक फ़ाइल बनाने के हूँ और फ़ाइल की सामग्री भेजने के लिए किया गया था पोस्ट के माध्यम से डेटा प्राप्त कर रहे हैं

कस्टम खोज



































मैं यह कैसे हस्तांतरण (पद्धति का उपयोग करके कहते हैं एक तस्वीर (JPEG)) फ़ाइलें. मैंने कोशिश की है लेकिन केवल 9-10 तबादला बाइट्स मिलता है.