public static String httpPost( String url, String param ) { |
PrintWriter out = null ; |
InputStream is = null ; |
BufferedReader br = null ; |
String result = "" ; |
HttpURLConnection conn = null ; |
StringBuffer strBuffer = new StringBuffer(); |
try { |
URL realUrl = new URL(url); |
conn = (HttpURLConnection) realUrl.openConnection(); |
// 设置通用的请求属性 |
conn.setRequestMethod( "POST" ); |
conn.setConnectTimeout( 20000 ); |
conn.setReadTimeout( 300000 ); |
conn.setRequestProperty( "Charset" , "UTF-8" ); |
// 传输数据为json,如果为其他格式可以进行修改 |
conn.setRequestProperty( "Content-Type" , "application/json" ); |
conn.setRequestProperty( "Content-Encoding" , "utf-8" ); |
// 发送POST请求必须设置如下两行 |
conn.setDoOutput( true ); |
conn.setDoInput( true ); |
conn.setUseCaches( false ); |
// 获取URLConnection对象对应的输出流 |
out = new PrintWriter(conn.getOutputStream()); |
// 发送请求参数 |
out.print(param); |
// flush输出流的缓冲 |
out.flush(); |
is = conn.getInputStream(); |
br = new BufferedReader( new InputStreamReader(is)); |
String line = null ; |
while ((line=br.readLine())!= null ) { |
strBuffer.append(line); |
} |
result = strBuffer.toString(); |
} catch (Exception e) { |
System. out.println( "发送 POST 请求出现异常!" + e); |
e.printStackTrace(); |
} |
// 使用finally块来关闭输出流、输入流 |
finally { |
try { |
if (out != null ) { |
out.close(); |
} |
if (br != null ) { |
br.close(); |
} |
if (conn!= null ) { |
conn.disconnect(); |
} |
} catch (IOException ex) { |
ex.printStackTrace(); |
} |
} |
return result; |
} |