Wie kann ich mithilfe von Java POST-Vorgänge durchführen und Parameter sowie einen unformatierten Anforderungshauptteil einschließen?

Ich kommuniziere mit einem Webdienst, der einen POST-Parameter und auch einen Anforderungshauptteil erwartet. Ich habe bestätigt, dass eine solche POST-Anforderung mit meiner REST-Konsole ausgeführt werden kann, kann diese Anforderung jedoch nicht in Java mit Apache-Bibliotheken ausführen.

Im folgenden Code kann ich POST an den Webdienst senden, und der Inhalt der Variablen raw_body wird korrekt empfangen. Wenn ich die erste der beiden kommentierten Zeilen auskommentiere, erhält der Webdienst den Parameter "fname", aber nicht mehr den Hauptteil des 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);

Wie kann ich sowohl den Parameter als auch den Körper übertragen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage