public static String postHttp(String urlStr, String params) {
// System.out.println("http请求的URL:"+urlStr + "?" + params);
PrintWriter out = null;
BufferedReader in = null;
StringBuffer result = new StringBuffer();
try {
URL realUrl = new URL(urlStr);
// 打开和URL之间的连接;请求协议(此处是http)生成的URLConnection类的子类HttpURLConnection
HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
// 请求方法,默认GET
conn.setRequestMethod("POST");
// 设置通用的请求属性
conn.setRequestProperty("Content-Type", " application/json"); // 请求格式
conn.setRequestProperty("charset", "utf-8"); // 设置编码语言
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive"); // 连接状态
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
// 发送POST请求必须设置如下两行
// 是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false;
conn.setDoOutput(true);
// 是否从httpUrlConnection读入,默认情况下是true;
conn.setDoInput(true);
// HttpURLConnection连接
// conn.connect();
// 获取URLConnection对象对应的输出流;conn.getOutputStream()隐含进行connect()方法
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(params);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
String line = "";
while ((line = in.readLine()) != null) {
result.append(line);
}
// System.out.println("远程主机返回文本结果"+ result);
} catch (Exception e) {
System.out.println("错误信息"+e.getMessage().toString());
} finally {
try {
if (out != null) {
out.close();
out = null;
}
if (in != null) {
in.close();
in = null;
}
} catch (Exception ex) {
System.out.println("错误信息"+ ex.getMessage().toString());
}
}
return result.toString();
}