需要的jar包:commons-httpclient-3.1.jar,commons-logging-1.0.4.jar,commons-codec-1.2.jar。在大地财险测试通过。
代码如下所示:
package cn.com.sinosoft.test.http; import org.apache.commons.httpclient.HostConfiguration; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.StringRequestEntity; import org.apache.commons.httpclient.params.HttpConnectionManagerParams; public class PostSample { public static void main(String[] args) { HttpClient httpClient = new HttpClient(); // 设置代理 // HostConfiguration hcf = new HostConfiguration(); // hcf.setProxy("localhost", 8118); // httpClient.setHostConfiguration(hcf); HttpConnectionManagerParams managerParams = httpClient .getHttpConnectionManager().getParams(); // 设置连接超时时间(单位毫秒) managerParams.setConnectionTimeout(30000); // 设置读数据超时时间(单位毫秒) managerParams.setSoTimeout(120000); String url = "http://localhost/testweb/commserver"; PostMethod postMethod = new PostMethod(url); // 将请求参数XML的值放入postMethod中 String strResponse = null; try { postMethod.setRequestEntity(new StringRequestEntity( createRequestXML(), "text/xml", "GBK")); int statusCode = httpClient.executeMethod(postMethod); if (statusCode != HttpStatus.SC_OK) { throw new IllegalStateException("Method failed: " + postMethod.getStatusLine()); } strResponse = postMethod.getResponseBodyAsString(); } catch (Exception ex) { throw new IllegalStateException(ex.toString()); } finally { // 释放连接 postMethod.releaseConnection(); } System.out.println(strResponse); } public static String createRequestXML() { StringBuffer buffer = new StringBuffer(); buffer.append("<?xml version=/"1.0/" encoding=/"GBK/"?>"); buffer.append("<PACKET>"); buffer.append("<HEAD>"); buffer.append("<REQUEST_TYPE>01</REQUEST_TYPE>"); buffer.append("</HEAD>"); buffer.append("</PACKET>"); return buffer.toString(); } }