注意:使用OutputStream 时,POJO类需实现序列化
package com.bmp.sdk.util;
import com.alibaba.fastjson.JSONObject;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* Created with IDEA
*
* @ Author:wangm
* @ Date:Created in 2018/11/20 16:19
* @ Description:发送Http通用类
*/
public class HttpUtil {
private static final String DEFAULT_CHARSET = "UTF-8";
/** 读取超时 */
private static final int DEFAULT_READ_TIMEOUT = 120000;
/** 连接超时 */
private static final int DEFAULT_CONN_TIMEOUT = 20000;
/**
* @param url
* @param params
* @return
* @throws IOException
* @作用 使用urlconnection
*/
public static JSONObject sendPost(String url, String params) throws IOException {
OutputStream out = null;
BufferedReader reader = null;
String response = "";
try {
URL httpUrl = null;
//创建URL
httpUrl = new URL(url);
//建立连接
HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json;charset="+DEFAULT_CHARSET);
conn.setConnectTimeout(DEFAULT_CONN_TIMEOUT);
conn.setReadTimeout(DEFAULT_READ_TIMEOUT);
conn.setUseCaches(false);//设置不要缓存
conn.setDoOutput(true);
conn.setDoInput(true);
conn.connect();
//POST请求
out = conn.getOutputStream();
out.write(params.getBytes(DEFAULT_CHARSET));
out.flush();
//读取响应
reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),DEFAULT_CHARSET));
String lines;
while ((lines = reader.readLine()) != null) {
lines = new String(lines.getBytes(), DEFAULT_CHARSET);
response += lines;
}
reader.close();
// 断开连接
conn.disconnect();
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
finally {
try {
if (out != null) {
out.close();
}
if (reader != null) {
reader.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
JSONObject json = JSONObject.parseObject(response);
return json;
}
}