Urgente - file upload(não é uma pergunta COMUM, confira)
8 respostas
fr3akoutTotal
Pessoal preciso fazer um http client pra enviar via POST um arquivo xml para o meu servlet em java.
Eu pesquisei na internet, e só encontrei soluções que usam httpclient da apache.
O problema é que o sistema no qual desenvolvo não me deixa IMPORTAR BIBLIOTECAS, ou seja preciso criar um client que use apenas o que vem na JDK 1.4(não pode ser nada da 1.5).
O código mais perto disso que eu consegui foi esse abaixo:
try{// Construct dataStringdata=URLEncoder.encode("key1","UTF-8")+"="+URLEncoder.encode("value1","UTF-8");data+="&"+URLEncoder.encode("key2","UTF-8")+"="+URLEncoder.encode("value2","UTF-8");// Send dataURLurl=newURL("http://hostname:80/cgi");URLConnectionconn=url.openConnection();conn.setDoOutput(true);OutputStreamWriterwr=newOutputStreamWriter(conn.getOutputStream());wr.write(data);wr.flush();// Get the responseBufferedReaderrd=newBufferedReader(newInputStreamReader(conn.getInputStream()));Stringline;while((line=rd.readLine())!=null){// Process line...}wr.close();rd.close();}catch(Exceptione){}
porém preciso adaptar este código para que envie um ARQUIVO.xml e não o conteudo do XML como uma string.
a propria apache tem o commons file upload … tem exemplo e tudo mais no site
fr3akoutTotal
mas eu nao posso utilizar bibliotecas como eu disse no primeiro post deste topico…tenho que fazer de modo nativo…soh com as libs do java
valeuz mesmo assim
fr3akoutTotal
mas nao posso utilizar bibliotecas, tneho que fazer de modo nativo…como eu disse acima
valeuz mesmo assim…
gui_sv
só com java ntvo eu nao sei …
blza
sergiotaborda
fr3akoutTotal:
Pessoal preciso fazer um http client pra enviar via POST um arquivo xml para o meu servlet em java.
Eu pesquisei na internet, e só encontrei soluções que usam httpclient da apache.
O problema é que o sistema no qual desenvolvo não me deixa IMPORTAR BIBLIOTECAS, ou seja preciso criar um client que use apenas o que vem na JDK 1.4(não pode ser nada da 1.5).
O código mais perto disso que eu consegui foi esse abaixo:
try{// Construct dataStringdata=URLEncoder.encode("key1","UTF-8")+"="+URLEncoder.encode("value1","UTF-8");data+="&"+URLEncoder.encode("key2","UTF-8")+"="+URLEncoder.encode("value2","UTF-8");// Send dataURLurl=newURL("http://hostname:80/cgi");URLConnectionconn=url.openConnection();conn.setDoOutput(true);OutputStreamWriterwr=newOutputStreamWriter(conn.getOutputStream());wr.write(data);wr.flush();// Get the responseBufferedReaderrd=newBufferedReader(newInputStreamReader(conn.getInputStream()));Stringline;while((line=rd.readLine())!=null){// Process line...}wr.close();rd.close();}catch(Exceptione){}
porém preciso adaptar este código para que envie um ARQUIVO.xml e não o conteudo do XML como uma string.
ajuda por favor!!
Não ha diferença prática. DO lado do servidor simplesmente leia o parametro e converta para arquivo.
O HTTP nunca envia o arquivo, sempre converte para texto ( pois é um protocolo baseado em texto).
O que acontece no FileUploads é que vc define o post com um outro tipo de encoding e assim o browser envia o request de outra forma que o FileUploads sabe ler. Mas isso é uma necessidade que vc pode evitar. Sobretudo se o seu cliente é limitado.
fr3akoutTotal
sergiotaborda:
fr3akoutTotal:
Pessoal preciso fazer um http client pra enviar via POST um arquivo xml para o meu servlet em java.
Eu pesquisei na internet, e só encontrei soluções que usam httpclient da apache.
O problema é que o sistema no qual desenvolvo não me deixa IMPORTAR BIBLIOTECAS, ou seja preciso criar um client que use apenas o que vem na JDK 1.4(não pode ser nada da 1.5).
O código mais perto disso que eu consegui foi esse abaixo:
try{// Construct dataStringdata=URLEncoder.encode("key1","UTF-8")+"="+URLEncoder.encode("value1","UTF-8");data+="&"+URLEncoder.encode("key2","UTF-8")+"="+URLEncoder.encode("value2","UTF-8");// Send dataURLurl=newURL("http://hostname:80/cgi");URLConnectionconn=url.openConnection();conn.setDoOutput(true);OutputStreamWriterwr=newOutputStreamWriter(conn.getOutputStream());wr.write(data);wr.flush();// Get the responseBufferedReaderrd=newBufferedReader(newInputStreamReader(conn.getInputStream()));Stringline;while((line=rd.readLine())!=null){// Process line...}wr.close();rd.close();}catch(Exceptione){}
porém preciso adaptar este código para que envie um ARQUIVO.xml e não o conteudo do XML como uma string.
ajuda por favor!!
Não ha diferença prática. DO lado do servidor simplesmente leia o parametro e converta para arquivo.
O HTTP nunca envia o arquivo, sempre converte para texto ( pois é um protocolo baseado em texto).
O que acontece no FileUploads é que vc define o post com um outro tipo de encoding e assim o browser envia o request de outra forma que o FileUploads sabe ler. Mas isso é uma necessidade que vc pode evitar. Sobretudo se o seu cliente é limitado.
do lado do servidor eu fiz funcionar, agora falo do lado do cliente, como mandar um arquivo xml em stream pelo http post, vc saberia me dar ume xmeplo de como fazer? pq eu nem faço idéia, esse código acima eu tirei do www.exampledepot.com, segue abaixo minha rotina do lado servidor que atualmente funciona direitinho:
Não ha diferença prática. DO lado do servidor simplesmente leia o parametro e converta para arquivo.
O HTTP nunca envia o arquivo, sempre converte para texto ( pois é um protocolo baseado em texto).
O que acontece no FileUploads é que vc define o post com um outro tipo de encoding e assim o browser envia o request de outra forma que o FileUploads sabe ler. Mas isso é uma necessidade que vc pode evitar. Sobretudo se o seu cliente é limitado.
do lado do servidor eu fiz funcionar, agora falo do lado do cliente, como mandar um arquivo xml em stream pelo http post, vc saberia me dar ume xmeplo de como fazer? pq eu nem faço idéia, esse código acima eu tirei do www.exampledepot.com, segue abaixo minha rotina do lado servidor que atualmente funciona direitinho:
[/quote]
Ora, o codigo do lado do cliente é aquele lá que vc mesmo colocou.
Só que em vez de
OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();