Sto comunicando con un servizio Web che si aspetta un parametro POST e si aspetta anche il corpo della richiesta. Ho confermato che una tale richiesta POST può essere eseguita utilizzando una console REST che ho, ma non riesco a fare una tale richiesta in Java usando le librerie Apache.Come posso POST utilizzare Java e includere parametri e un corpo di richiesta non elaborato?
Nel codice seguente, sono in grado di inviare POST al servizio Web e riceve correttamente il contenuto della variabile raw_body. Se rimuovi il commento dalla prima delle due righe commentate, il servizio web riceve il parametro "fname", ma non riceve più il corpo 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);
Come è possibile trasmettere sia il parametro che il corpo?
Ah, questo è perfetto. setQueryString è ** esattamente ** ciò di cui avevo bisogno. I tuoi commenti su questo non essere molto Riposo e anche che probabilmente dovrebbe essere una richiesta PUT sono ben presi. Grazie per avermi guidato nella giusta direzione. –