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();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
}
|