我正在與期望POST參數的Web服務進行通信,並期望請求正文。我已經確認可以使用REST控制檯完成這樣的POST請求,但我無法使用Apache庫在Java中發出這樣的請求。如何使用Java進行POST幷包含參數和原始請求體?
在下面的代碼中,我能夠POST到Web服務,並且它正確地接收變量raw_body的內容。如果我取消註釋兩條註釋行中的第一行,則Web服務會收到「fname」參數,但它不再接收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);
如何傳輸參數和正文?
啊,這是完美的。 setQueryString是**完全**我需要的。您對此的評論不是非常安靜,也可能是PUT請求。感謝您指引正確的方向。 –