2
我目前正在編寫一個需要發送一個http Post請求到服務器的應用程序。該請求需要包含特定的參數,這些參數在相應的GET請求中將被編碼到url中。但是,http請求的正文需要正確格式化xml服務器將解析。所以,我的理解是,該文件需要被添加到該請求,像這樣:如何使用apache commons HttpPost發送文件併爲請求編碼參數?
httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost("url...");
if (httpContent != null){
InputStreamEntity httpStream = new InputStreamEntity(httpContent,-1);
httpStream.setContentType("text/xml");
httpStream.setChunked(true);
post.setEntity(httpStream);
}
和參數需要被添加作爲一個名稱 - 值對這樣的:
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("userid", "12312"));
nameValuePairs.add(new BasicNameValuePair("sessionid", "234"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
現在,我很確定httpPost只能有一個實體集,除非我誤解它。那麼,我怎樣才能設置參數,仍然保留爲http身體的XML?
在此先感謝!
我需要在HTTP正文編碼就像一個普通的POST請求的參數。我不想構建一個GET請求。問題是,我沒有看到如何編碼參數,幷包括XML文件。 – brthornbury 2012-01-01 20:31:34
@Mozoby - 我們需要更好地理解您要提交的服務器需要什麼。如果上述操作不起作用,則可能需要使用UrlEncodedFormEntity,並將所有XML作爲具有給定名稱的值。 – ziesemer 2012-01-02 01:38:33
這是正確的,我需要將參數編碼爲GET參數並將XML放入POST主體中。 – brthornbury 2013-02-04 19:12:01