Accueil > Java > HTTP POST contenu du fichier en JAVA

Contenu HTTP POST Fichier en JAVA

Dans le scénario Web, nous avons deux méthodes pour envoyer du contenu à la page d'autres "GET" et "POST". Bien que dans "GET" développeurs méthode bénéficie de la flexibilité du contrôle de la teneur se passait, mais il est limite pour l'envoi de données. Comme comparer à "GET" méthode "POST" bénéficie de la flexibilité pour l'envoi de données illimitée et en utilisant cette méthode nous pouvons aussi envoyer le contenu des fichiers énormes. Cet article va vous apprendre sur la façon dont nous pouvons envoyer du contenu énorme fichier sur un hôte distant. Pour ce faire nous allons utiliser URLConnection classe qui vous permet de connecter à la page distante URL.

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.URLEncoder, java.io. *"%> java.net.URLConnection
 <%
     URL url;
     urlConn URLConnection;
     DataOutputStream impression;
     DataInputStream entrée;

     / / URL du script distant.
     URL ( "http://localhost:8080/testpostdata" ) ; //testpostdata is the servlet name url = nouvelle URL ("http://localhost:8080/testpostdata"); / / testpostdata est le nom de servlet

     / / Ouvrir un nouveau canal de liaison URL.
     ( ) ; urlConn = url. OpenConnection ();

     / / Que le temps système d'exécution (RTS), savent que nous voulons d'entrée.
     true ) ; urlConn. setDoInput (true);

     / / Nous voulons faire de sortie.
     true ) ; urlConn. setDoOutput (true);

     / / Nous ne voulons pas 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 ("de type" Content "application / x-www-form-urlencoded");

     / / Envoyer POST sortie.
     DataOutputStream ( urlConn. getOutputStream ( ) ) ; impression = DataOutputStream nouvelles (urlConn. getOutputStream ());

     contenu String =
     URLEncoder . encode ( "Hitesh Agrawal" ) + "Name =" + URLEncoder. Encode ("Hitesh Agrawal") +
     URLEncoder . encode ( "Software Engineer" ) ; "& Profession =" + URLEncoder. Encode ("Ingénieur");

     content ) ; impression. writeBytes (le contenu);
     ; impression. flush ();
     ; impression. close ();

     / / Récupère les données de réponse.
     DataInputStream ( urlConn. getInputStream ( ) ) ; entrée = DataInputStream nouvelles (urlConn. getInputStream ());
     String str;
     null != ( ( str = input. readLine ( ) ) ) ) while (null! = ((str = entrée. readLine ())))
     (
    	 . println ( str ) ; Système. OUT. Println (str);
	 )
     ; d'entrée. close ();

 %> 

Votre email:


Explication de code pour JSP:

  • Ici, nous créons un objet de URLConnection en appelant la OpenConnection () méthode d'un objet URL
  • Après avoir créé l'objet que nous définir les attributs nécessaires et en-têtes requis pour l'envoi des données
  • Après avoir réglé les en-têtes, je vous écris les données sur le OutputStream. Enfin je lis les données de réponse.

testpostdata Servlet Code

  ; import java.io. *;
 ; javax.servlet .* à l'importation;
 ; javax.servlet.http importation .*;

 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 doPost (HttpServletRequest demande, la réponse HttpServletResponse) throws IOException, ServletException (
		 request. getParameter ( "name" ) ; String nom = demande. getParameter ("nom");
		 request. getParameter ( "profession" ) ; profession String = demande. getParameter («profession»);
		 OutputStream f0;

		 = name. getBytes ( ) ; byte buf [] = nom. getBytes ();

		 FileOutputStream ( "/home/hitesh/Desktop/postcontent.txt" ) ; f0 = FileOutputStream nouvelles ("/ 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 de code pour Servlet:

  • En doPost () Je suis récupérer le paramètre envoyé en utilisant request.getParameter
  • Pour recouper si les données a été envoyé avec succès, je vais créer un fichier et le contenu du fichier sont les données reçues par POST


Recherche personnalisée

Articles populaires:

Share and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • DZone
  • email
  • IndianPad
  • LinkedIn
  • Live
  • MySpace
  • Netvibes
  • RSS
  • Technorati
  • Yahoo! Bookmarks
  • Yahoo! Buzz
  • Reddit
  • Add to favorites
  • PDF
  • Twitter
Tags: Catégories: Java Tags:
  1. Nahian
    Décembre 16, 2009 à 11:37 | # 1

    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.

  1. Pas encore de trackbacks.