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 (); %>
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



































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.