public String doPost(String url, Map<String, String> param) throws Exception {
// 当传入的url返回不为空的时候,读取数据
BufferedReader input = null;
PrintWriter out = null;
byte[] data = null;// 提高字符数据的生成
String result = "";
if (StringUtils.isNotBlank(url)) {
try {
// 设置请求的头信息
URL urlInfo = new URL(url);
URLConnection connection = urlInfo.openConnection();
connection.addRequestProperty("Host", urlInfo.getHost());// 设置头信息
connection.addRequestProperty("Connection", "keep-alive");
connection.addRequestProperty("Accept", "*/*");
connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64)");
// 发送POST请求必须设置如下两行
connection.setDoOutput(true);
connection.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(connection.getOutputStream());
// 发送请求参数
out.print(getParam(param));
// flush输出流的缓冲
out.flush();
// 获取所有响应头字段
// 获取请求回来的信息
// 定义 BufferedReader输入流来读取URL的响应
input = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
String line;
while ((line = input.readLine()) != null) {
result += line;
}
} catch (Exception e) {
throw new Exception("读取Url数据失败:" + url, e);
} finally {
try {
input.close();
} catch (Exception e) {
}
}
}
return result;
}
/**
* 将参数以 key=123&v=456 2019-03-04
* @author 朱传露
* @since 2019年3月4日
* @param param
* @return
*/
public String getParam(Map<String, String> param) {
StringBuilder str = new StringBuilder();
if (param != null) {
int size = 0;
for (Map.Entry<String, String> m : param.entrySet()) {
str.append(m.getKey());
str.append("=");
str.append(m.getValue());
if (size < param.size() - 1) {
str.append("&");
}
size++;
}
}
return str.toString();
}
get方法请求:
/**
*
* get方式获取数据
*/
public static String doGet(String url) throws Exception {
// 当传入的url返回不为空的时候,读取数据
BufferedReader input = null;
String result = "";
if (StringUtils.isNotBlank(url)) {
try {
// 设置请求的头信息
URL urlInfo = new URL(url);
URLConnection connection = urlInfo.openConnection();
connection.addRequestProperty("Connection", "keep-alive");
connection.addRequestProperty("Accept", "*/*");
connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64)");
// 建立实际的连接
connection.connect();
// 定义 BufferedReader输入流来读取URL的响应
input = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = input.readLine()) != null) {
result += line;
}
} catch (Exception e) {
logger.error("读取Url数据失败:" + e);
throw new Exception("读取Url数据失败:" + url, e);
} finally {
try {
input.close();
} catch (Exception e) {
}
}
}
return result;
}