HTTP POST le contenu de fichiers en JAVA
Dans le scénario Web, nous avons deux méthodes pour envoyer du contenu à la page des autres "GET" et "POST". Bien que dans "GET" développeurs méthode jouit de la flexibilité du contrôle du contenu se répercuter mais il ya limite pour l'envoi de données. Comme comparer à la "GET" méthode "POST" bénéficie de la flexibilité pour l'envoi illimité de données et en utilisant cette méthode, nous pouvons aussi envoyer le contenu de fichiers énormes. Cet article va vous apprendre comment nous pouvons envoyer du contenu énorme fichier sur un hôte distant. Pour cela, nous allons utiliser la classe URLConnection qui vous permet de vous connecter à distance avec la page Web.
JSP page de code
= "java.util.*,java.net.URL,java.net.URLConnection,java.net.URLEncoder,java.io.*" %> <% @ Page import = "java.util .*, java.net.URL, java.net.URLConnection, java.net.URLEncoder, java.io. *"%> <% URL url; URLConnection urlConn; DataOutputStream impression; DataInputStream input; / / URL of Remote Script. URL ( "http://localhost:8080/testpostdata" ) ; //testpostdata is the servlet name url = new URL ( "http://localhost:8080/testpostdata"); / / testpostdata est le nom servlet / / Open Nouvelle URL chaîne de connexion. ( ) ; url = urlConn. openConnection (); / / Let the run-time system (RTS), savent que nous voulons d'entrée. true ) ; urlConn. setDoInput (true); / / Nous voulons faire de sortie. true ) ; urlConn. setDoOutput (true); / / On veut pas de la mise en cache false ) ; urlConn. setUseCaches (false); / / Spécifiez le type de contenu en-tête. "Content-Type" , "application/x-www-form-urlencoded" ) ; urlConn. setRequestProperty ( "Content-Type", "application / x-www-form-urlencoded"); / / Send post production. DataOutputStream ( urlConn. getOutputStream ( ) ) ; = DataOutputStream nouvel imprimé (urlConn. getOutputStreamQ ()); String content = URLEncoder . encode ( "Hitesh Agrawal" ) + "name =" + EncodeurURL. encode ( "Hitesh Agrawal") + URLEncoder . encode ( "Software Engineer" ) ; "& profession =" + EncodeurURL. encode ( "Software Engineer"); content ) ; impression. writeBytes (contenu); ; impression. flush (); ; impression. close (); / / Retourne les données de réponse. DataInputStream ( urlConn. getInputStream ( ) ) ; = new DataInputStream entrée (urlConn. getInputStream ()); String str; null != ( ( str = input. readLine ( ) ) ) ) while (null! = ((str = entrée. ReadLine ()))) ( . println ( str ) ; System.. Out.println (str); ) ; d'entrée. close (); %>
Explication du code pour JSP:
- Ici, nous créons un objet de URLConnection en appelant la openConnection () méthode d'un objet Web
- Après avoir créé l'objet que nous définir les attributs nécessaires et en-têtes nécessaires à l'envoi de données
- Après avoir réglé le i-têtes écris les données sur le flux sortant. Enfin, je lis les données de réponse.
testpostdata Servlet Code
; import java.io. *; ; import javax.servlet .*; ; import javax.servlet.http .*; HttpServlet { public class test extends HttpServlet ( init ( ServletConfig config ) throws ServletException { public void init (config ServletConfig) throws ServletException ( ( config ) ; super. init (config); ) destroy ( ) { public void destroy () ( ) doPost ( HttpServletRequest request,HttpServletResponse response ) throws IOException , ServletException { public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException ( request. getParameter ( "name" ) ; String name = demande. GetParameter ( "nom"); request. getParameter ( "profession" ) ; String = profession demande. GetParameter ( «profession»); OutputStream f0; = name. getBytes ( ) ; byte buf [] = nom. getBytes (); FileOutputStream ( "/home/hitesh/Desktop/postcontent.txt" ) ; f0 = new FileOutputStream ( "/ home / hitesh / Desktop / postcontent.txt"); int i = 0 ; i < buf . length ; i ++ ) { for (int i = 0; i <buf. longueur; i + +) ( buf [ i ] ) ; f0. write (buf [i]); ) ; f0. close (); ; buf = null; ) )
Explication du code pour la servlet:
- En doPost () Je suis récupérer le paramètre envoyez en utilisant request.getParameter
- Pour contre-vérifier si les données ont été envoyer avec succès je crée un fichier et le contenu du fichier sont les données reçues par la méthode POST

















Comment puis-je transférer des fichiers en utilisant cette méthode (par exemple une image (jpeg)). J'ai essayé, mais seulement 9-10 octets transférés.