Home > Java > HTTP Content File POST em JAVA

HTTP Content File POST em JAVA

No cenário da Web, temos dois métodos para enviar conteúdo para outra página "GET" e "POST". Embora em "GET" método beneficia os desenvolvedores a flexibilidade de verificar o conteúdo ser ultrapassado, mas não há limite para o envio de dados. Como comparar a "GET" método "POST" beneficia a flexibilidade para o envio ilimitado de dados e usando este método, podemos também enviar o conteúdo de arquivos grandes. Este artigo irá lhe ensinar sobre como podemos enviar conteúdo enorme arquivo para o host remoto. Para conseguir isso, vamos estar usando URLConnection classe que permite que você conecte com o URL da página remoto.

JSP Code Page

  = "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;
     urlConn URLConnection;
     impressão DataOutputStream;
     DataInputStream entrada;

     / / URL do script remoto.
     URL ( "http://localhost:8080/testpostdata" ) ; //testpostdata is the servlet name url = new URL ("http://localhost:8080/testpostdata"); / testpostdata / é o nome do servlet

     / / Abre Novo canal de ligação do URL.
     ( ) ; urlConn = url. OpenConnection ();

     / / Deixe o sistema de tempo de execução (RTS) sabe que nós queremos de entrada.
     true ) ; urlConn. setDoInput (true);

     / / Que nós queremos fazer de saída.
     true ) ; urlConn. setDoOutput (true);

     / / Não queremos cache
     false ) ; urlConn. setUseCaches (false);

     / / Especifique o tipo de conteúdo do cabeçalho.
     "Content-Type" , "application/x-www-form-urlencoded" ) ; urlConn. setRequestProperty ("Tipo" Content "application / x-www-form-urlencoded");

     / / Enviar saída POST.
     DataOutputStream ( urlConn. getOutputStream ( ) ) ; impressão = DataOutputStream novo (urlConn. getOutputStream ());

     conteúdo String =
     URLEncoder . encode ( "Hitesh Agrawal" ) + "Name =" + URLEncoder. Codificar ("Hitesh Agrawal") +
     URLEncoder . encode ( "Software Engineer" ) ; "& Profissão =" + URLEncoder. Codificar ("Software Engineer");

     content ) ; impressão. writeBytes (conteúdo);
     ; impressão. flush ();
     ; impressão. close ();

     / / Pega dados da resposta.
     DataInputStream ( urlConn. getInputStream ( ) ) ; = input DataInputStream novo (urlConn. getInputStream ());
     String str;
     null != ( ( str = input. readLine ( ) ) ) ) while (null! = ((str = input. readLine ())))
     (
    	 . println ( str ) ; System. Out. Println str ();
	 )
     ; entrada. close ();

 %> 

Seu email:


Explicação do código para JSP:

  • Aqui nós criamos um objeto de URLConnection chamando o método OpenConnection () de um objeto URL
  • Depois de criar o objeto que definir os atributos necessários e os cabeçalhos necessários para o envio de dados
  • Depois de definir os cabeçalhos estou escrevendo os dados no OutputStream. Finalmente estou lendo os dados da resposta.

testpostdata Servlet Código

  ; import java.io. *;
 ; importação javax.servlet .*;
 ; javax.servlet.http importação .*;

 HttpServlet { public class teste se estende 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 pedido, HttpServletResponse resposta) throws IOException, ServletException (
		 request. getParameter ( "name" ) ; String nome = request. getParameter ("nome");
		 request. getParameter ( "profession" ) ; profissão String = pedido. getParameter ("profissão");
		 OutputStream f0;

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

		 FileOutputStream ( "/home/hitesh/Desktop/postcontent.txt" ) ; f0 = FileOutputStream novo ("/ home Hitesh / Desktop / postcontent.txt");

		 int i = 0 ; i < buf . length ; i ++ ) { for (int i = 0; i <buf. comprimento; i + +) (
			 buf [ i ] ) ; f0. write (buf [i]);
		 )

		 ; f0. close ();
		 ; buf = null;
	 )
 ) 

Explicação do código para o Servlet:

  • No doPost () estou recuperando o parâmetro enviar usando request.getParameter
  • Para se confrontar os dados foi enviado com sucesso estou criando um arquivo eo conteúdo do arquivo estão os dados recebidos através de POST


Custom Search

Artigos populares:

Compartilhe e 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: Categoria: Java Tags:
  1. Nahian
    16 dez 2009 às 11:37 | # 1

    Como faço para transferir arquivos eu usar esse método (por exemplo uma imagem (jpeg)). Eu tentei, mas apenas 90-10 bytes são transferidos.

  1. Não trackbacks ainda.