Me estoy comunicando con un servicio web que espera un parámetro POST y también espera el cuerpo de la solicitud. Confirmé que una solicitud POST de este tipo se puede realizar utilizando una REST Console que tengo, pero no puedo realizar dicha solicitud en Java utilizando las bibliotecas de Apache.¿Cómo puedo POST usar Java e incluir parámetros y un cuerpo de solicitud sin formato?
En el siguiente código, puedo ENVIAR al servicio web, y recibe correctamente los contenidos de la variable raw_body. Si elimino el comentario de la primera de las dos líneas comentadas, el servicio web recibe el parámetro "fname", pero ya no recibe el cuerpo del POST.
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
...
HttpClient httpClient = new HttpClient();
String urlStr = "http://localhost:8080/MyRestWebService/save";
PostMethod method = new PostMethod(urlStr);
String raw_body = "This is a very long string, much too long to be just another parameter";
RequestEntity re = new StringRequestEntity(raw_body, "text/xml", "UTF-16");
//method.addParameter("fname", "test.txt");
//httpClient.getParams().setParameter("fname", "test.txt");
method.setRequestEntity(re);
¿Cómo puedo transmitir el parámetro y el cuerpo?
Ah, esto es perfecto. setQueryString es ** exactamente ** lo que necesitaba. Sus comentarios acerca de que esto no es muy tranquilo y que probablemente debería ser una solicitud PUT son bien recibidos. Gracias por dirigirme en la dirección correcta. –