使用Java原生API编写发送HTTP_POST请求的工具类(二)

2014-11-24 11:54:51 · 作者: · 浏览: 33
httpURLConnection.disconnect();
httpURLConnection = null;
}
}
}
/**
* 发送HTTP_POST请求
* @see 若发送的params中含有中文,记得按照双方约定的字符集将中文URLEncoder.encode(string,encodeCharset)
* @see 本方法默认的连接和读取超时时间均为30秒
* @param reqURL 请求地址
* @param params 发送到远程主机的正文数据
* @return HTTP响应码`远程主机响应正文,如"200`SUCCESS"
若通信过程中发生异常则返回"HTTP响应码`Failed",如"500`Failed"
*/
public static String sendPostRequest(String reqURL, Map params){
StringBuilder sendData = new StringBuilder();
for(Map.Entry entry : params.entrySet()){
sendData.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
}
if(sendData.length() > 0){
sendData.setLength(sendData.length() - 1); //删除最后一个&符号
}
return sendPostRequest(reqURL, sendData.toString());
}
}
[java]
/**
* 下面是测试代码
*/ www.2cto.com
public static void main(String[] args) throws UnsupportedEncodingException {
Map params = new HashMap();
params.put("merNo", "301100100001630");
params.put("signType", " MD5");
params.put("merBindAgrNo", "00003018007000006450000013866742");
params.put("interfaceVersion", "1.0.0.0");
params.put("amount", "1000");
params.put("orderDate", "20120823");
params.put("orderNo", "UDP1208230917531231111");
params.put("merReqTime", "20120823091802");
params.put("goodsDesc", URLEncoder.encode("为号码交费充值元","UTF-8"));
params.put("goodsName", URLEncoder.encode("中国联通交费充值","UTF-8"));
params.put("userIdeMark", "3");
params.put("bankAgrMode", "9");
params.put("signMsg", "3ced24a118461043901d47815e6905a8");
System.out.println(sendPostRequest("http://123.125.97.239/tra/bind/payment.htm", params));