String strUrl = "http://127.0.0.1:8088/pay/alifpWebConnect.do";
String content ="<Finance><Message id=\"2013040208221748995\"><RRReq id=\"RRReq\"><versions>8.0.1</versions><inst>Test</inst><certId>2007072500</certId><serialNos>4567890123456789012346</serialNos><date>20131013 16:02:19</date><charge>4</charge><amount>100</amount><currency>1</currency></RRReq>
<Message></Finance>";
/*
* URL请求的类别分为二类,GET与POST请求。二者的区别在于:
* a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,
* b:) post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
*/
URL url = new URL(strUrl);
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
// 设定请求的方法为"POST",默认是GET
httpConn.setRequestMethod("POST");
httpConn.setRequestProperty("Content-Type", "application/xml"); // 设置请求类型
//设置文件长度
httpConn.setRequestProperty("Content-Length",
Integer.toString(content.length()));
//设置字符集
httpConn.setRequestProperty("Charset", "UTF-8");
// 设置是否从httpUrlConnection读入,默认情况下是true;
httpConn.setDoInput(true);
// 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在
// http正文内,因此需要设为true, 默认情况下是false;
httpConn.setDoOutput(true);
httpConn.connect();
System.out.print("connected!");
/*
* 对HttpURLConnection对象的一切配置都必须要在connect()函数执行之前完成。
* 而对outputStream的写操作,又必须要在inputStream的读操作之前。
* 这些顺序实际上是由http请求的格式决定的。
* */
PrintWriter out = new PrintWriter(httpConn.getOutputStream());
out.println(content);
out.flush();
out.close();
System.out.print("sended result!");
BufferedReader reader = new BufferedReader(new InputStreamReader(
httpConn.getInputStream()));
StringBuffer strBuffer = new StringBuffer();
String line = null;
while (null != (line = reader.readLine())) {
strBuffer.append(line);
}
System.out.println("res:"+strBuffer.toString());
if(reader !=null){
reader.close();
}
httpConn.disconnect();
httpConn = null;
url = null;
// if (log.isDebugEnabled()) {
System.out.print(new StringBuffer("receive response=[").append(
strBuffer).append("]"));