forked from integrated_whb/integrated_whb
228 lines
7.4 KiB
Java
228 lines
7.4 KiB
Java
package com.zcloud.util;
|
||
|
||
import com.alibaba.fastjson.JSONObject;
|
||
import org.springframework.lang.Nullable;
|
||
|
||
import javax.servlet.http.HttpServletRequest;
|
||
import java.io.*;
|
||
import java.net.HttpURLConnection;
|
||
import java.net.MalformedURLException;
|
||
import java.net.URL;
|
||
import java.net.URLConnection;
|
||
|
||
/**
|
||
* description: http请求工具类
|
||
*
|
||
* @date 2022-07-01
|
||
*/
|
||
public class HttpRequestUtil {
|
||
|
||
public static String sendRequest(String urlParam) throws Exception {
|
||
InputStream inputStream = null;
|
||
BufferedReader buffer = null;
|
||
try {
|
||
URL url = new URL(urlParam);
|
||
URLConnection con = url.openConnection();
|
||
//设置请求需要返回的数据类型和字符集类型
|
||
con.setRequestProperty("Content-Type", "application/json;charset=GBK");
|
||
//允许写出
|
||
con.setDoOutput(true);
|
||
//允许读入
|
||
con.setDoInput(true);
|
||
//不使用缓存
|
||
con.setUseCaches(false);
|
||
//得到响应流
|
||
inputStream = con.getInputStream();
|
||
//将响应流转换成字符串
|
||
StringBuffer resultBuffer = new StringBuffer();
|
||
String line;
|
||
buffer = new BufferedReader(new InputStreamReader(inputStream, "GBK"));
|
||
while ((line = buffer.readLine()) != null) {
|
||
resultBuffer.append(line);
|
||
}
|
||
return resultBuffer.toString();
|
||
} catch (Exception e) {
|
||
buffer.close();
|
||
inputStream.close();
|
||
e.printStackTrace();
|
||
}
|
||
|
||
return "";
|
||
}
|
||
|
||
public static String getRestInformation(HttpServletRequest request) throws Exception {
|
||
return getRestInformation(request,String.class);
|
||
}
|
||
|
||
public static <T> T getRestInformation(HttpServletRequest request, Class<T> clazz) throws Exception {
|
||
BufferedReader reader = null;
|
||
try {
|
||
|
||
StringBuffer data = new StringBuffer();
|
||
String line = null;
|
||
reader = request.getReader();
|
||
while (null != (line = reader.readLine())) data.append(line);
|
||
reader.close();
|
||
T result = JSONObject.parseObject(data.toString(), clazz);
|
||
return result;
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
throw new RuntimeException("解析请求报文出错");
|
||
} finally {
|
||
reader.close();
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Http get请求
|
||
* @param httpUrl 连接
|
||
* @return 响应数据
|
||
*/
|
||
public static String doGet(String httpUrl) throws Exception{
|
||
//链接
|
||
HttpURLConnection connection = null;
|
||
InputStream is = null;
|
||
BufferedReader br = null;
|
||
StringBuffer result = new StringBuffer();
|
||
try {
|
||
//创建连接
|
||
URL url = new URL(httpUrl);
|
||
connection = (HttpURLConnection) url.openConnection();
|
||
//设置请求方式
|
||
connection.setRequestMethod("GET");
|
||
//设置连接超时时间
|
||
connection.setReadTimeout(15000);
|
||
//开始连接
|
||
connection.connect();
|
||
//获取响应数据
|
||
if (connection.getResponseCode() == 200) {
|
||
//获取返回的数据
|
||
is = connection.getInputStream();
|
||
if (null != is) {
|
||
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
|
||
String temp = null;
|
||
while (null != (temp = br.readLine())) {
|
||
result.append(temp);
|
||
}
|
||
}
|
||
}
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
} finally {
|
||
if (null != br) {
|
||
try {
|
||
br.close();
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
if (null != is) {
|
||
try {
|
||
is.close();
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
//关闭远程连接
|
||
connection.disconnect();
|
||
}
|
||
return result.toString();
|
||
}
|
||
|
||
/**
|
||
* Http post请求
|
||
* @param httpUrl 连接
|
||
* @param param 参数
|
||
* @return
|
||
*/
|
||
public static String doPost(String httpUrl, @Nullable String param) {
|
||
StringBuffer result = new StringBuffer();
|
||
//连接
|
||
HttpURLConnection connection = null;
|
||
OutputStream os = null;
|
||
InputStream is = null;
|
||
BufferedReader br = null;
|
||
try {
|
||
//创建连接对象
|
||
URL url = new URL(httpUrl);
|
||
//创建连接
|
||
connection = (HttpURLConnection) url.openConnection();
|
||
//设置请求方法
|
||
connection.setRequestMethod("POST");
|
||
//设置连接超时时间
|
||
connection.setConnectTimeout(15000);
|
||
//设置读取超时时间
|
||
connection.setReadTimeout(15000);
|
||
//DoOutput设置是否向httpUrlConnection输出,DoInput设置是否从httpUrlConnection读入,此外发送post请求必须设置这两个
|
||
//设置是否可读取
|
||
connection.setDoOutput(true);
|
||
connection.setDoInput(true);
|
||
//设置通用的请求属性
|
||
// connection.setRequestProperty("accept", "*/*");
|
||
// connection.setRequestProperty("connection", "Keep-Alive");
|
||
// connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
|
||
connection.setRequestProperty("Content-Type", "application/json;charset=utf-8");
|
||
System.out.println(param);
|
||
//拼装参数
|
||
if (null != param && !param.equals("")) {
|
||
//设置参数
|
||
os = connection.getOutputStream();
|
||
//拼装参数
|
||
os.write(param.getBytes());
|
||
}
|
||
//设置权限
|
||
//设置请求头等
|
||
//开启连接
|
||
//connection.connect();
|
||
//读取响应
|
||
if (connection.getResponseCode() == 200) {
|
||
is = connection.getInputStream();
|
||
if (null != is) {
|
||
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
|
||
String temp = null;
|
||
while (null != (temp = br.readLine())) {
|
||
result.append(temp);
|
||
result.append("\r\n");
|
||
}
|
||
}
|
||
}
|
||
|
||
} catch (MalformedURLException e) {
|
||
e.printStackTrace();
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
} finally {
|
||
//关闭连接
|
||
if(br!=null){
|
||
try {
|
||
br.close();
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
if(os!=null){
|
||
try {
|
||
os.close();
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
if(is!=null){
|
||
try {
|
||
is.close();
|
||
} catch (IOException e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
//关闭连接
|
||
connection.disconnect();
|
||
}
|
||
return result.toString();
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
}
|