jdk 1.8
/**
* POST请求
*
* @param url
* 请求地址
* @param data
* 请求数据
* @return 响应数据
* @throws Exception
*/
public String post(String url, String data) throws Exception {
HttpURLConnection http = null;
URL finalUrl = null;
String result = "";
OutputStream dos = null;
BufferedReader responseReader = null;
try {
finalUrl = new URL(url);
http = (HttpURLConnection) finalUrl.openConnection();
http.setDoInput(true);
http.setDoOutput(true);
http.setUseCaches(false);
http.setConnectTimeout(connectionTimeout);
http.setReadTimeout(readTimeout);
http.setRequestMethod("POST");
http.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
http.setRequestProperty("Connection", "Keep-Alive");// 维持长连接
http.setRequestProperty("Charset", "UTF-8");
http.connect();
String param = data;
dos = http.getOutputStream();
dos.write(param.getBytes("UTF-8"));
dos.flush();
//获得响应状态
int retCode = http.getResponseCode();
if (HttpURLConnection.HTTP_OK == retCode) {
StringBuffer sb=new StringBuffer();
String readLine=new String();
responseReader = new BufferedReader(new InputStreamReader(http.getInputStream(),"UTF-8"));
while((readLine=responseReader.readLine())!=null){
sb.append(readLine).append("\n");
}
result = sb.toString();
} else {
throw new Exception("请求失败,状态码为[" + retCode + "]");
}
} catch (Exception e) {
throw e;
} finally {
if (dos != null) {
dos.close();
}
if (responseReader != null) {
responseReader.close();
}
}
return result;
}