Httpclient - file upload

1 resposta
vinicius_roc

Amigos preciso de um help.

Eu recebo por upload na minha aplicação um arquivo e preciso enviar para outra aplicação.

Encontrei dois sites que ensinam como fazer:
http://evgeny-goldin.com/blog/uploading-files-multipart-post-apache/
http://www.accordess.com/wpblog/file-upload-apache-httpclient-library/

Quando chamo o execute o outro servidor recebe a requisição porém sem NENHUM parâmetro.

E não sei oque estou fazendo errado ou deixando de fazer.

Me ajudem por favor.

Segue o código:

HttpPost post = new HttpPost(resource.toURL());

MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
			
for(Entry< String, Object > e : params.entrySet()){ //percorro os parâmetros da requisição original
	if(e.getValue() instanceof CWSMultiPartFileParameter){ //se for arquivo
		CWSMultiPartFileParameter value = (CWSMultiPartFileParameter) e.getValue();
		reqEntity.addPart(e.getKey(), new ByteArrayBody(value.getData(), "application/octect-stream", value.getFileName()));
	} else { // se for parâmetro normal
		try {
			reqEntity.addPart(e.getKey(), new StringBody(e.getValue().toString(), "text/plain", Charset.forName("ISO-8859-1")));
		} catch (UnsupportedEncodingException e1) {
			throw new IllegalStateException(e1);
		}
	}
}
			
post.setEntity(reqEntity);

HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
httpclient.execute(post);

Não mais o que fazer pessoal!!

Valew pela ajuda

1 Resposta

vinicius_roc

Descobri o problema, o problema era como eu processava o request, não sabia que seria diferente. Acertei isso e consegui resolver ESSE problema.

Ai surgiu outro… os parâmetros que eu estava procurando eu precisava para usar no filter. Até ai beleza funciona bem, mas quando caio denovo no servlet ele não consegue processar denovo o request, diz que o arquivo não tem fim, acredito porque ja tenha processado ele no filter.

Alguma ideia?

Criado 12 de setembro de 2012
Ultima resposta 13 de set. de 2012
Respostas 1
Participantes 1