与尼尔森对接的项目中用到了这一点。以前对这类知识不是很清楚,特记下备用。
只是一个方法而已,里面的参数可以自行改变,还有就是犯了一个错误,把接收返回结果注掉了,结果没发送过去,原来post请求发送接收返回结果是一个完整的流程。
/**
* post 请求发送到尼尔森
* @param json
* @param POST_URL
* @throws IOException
*/
public void readContentFromPost(JSONArray json,String POST_URL) throws IOException {
URL postUrl = new URL(POST_URL);
HttpURLConnection connection = (HttpURLConnection)postUrl.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestMethod("POST");
connection.setUseCaches(false);
connection.setInstanceFollowRedirects(true);
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
connection.connect();
DataOutputStream out = new DataOutputStream(connection.getOutputStream());
try{
String content = "voole=" + URLEncoder.encode(json.toString(), "utf-8");
out.writeBytes(content);
out.flush();
if(out !=null)
out.close();
int result=connection.getResponseCode();
if(result != 200){
log.error("传输数据响应异常,异常编码为:result=" + result + "异常信息:" + connection.getResponseMessage() + ",传输内容为:"+ content);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(connection !=null)
connection.disconnect();
}
}