package com.yanboo.application.modules;
import com.alibaba.fastjson.JSONObject;
import org.springframework.lang.Nullable;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
public class HttpUtil {
/**
* 原生HttpURLConnection http get请求
*
* @param httpUrl 链接
* @return 响应数据
*/
public static String doGet(String httpUrl) {
//链接
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.setConnectTimeout(15000);
//设置读取超时时间
connection.setReadTimeout(15000);
//设置参数类型
connection.setRequestProperty("Authorization", "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VySWQiOiIzMzk0IiwiVXNlck5hbWUiOiJ5Ynpoc3QiLCJyb2xlIjoiMzkiLCJpc3MiOiJzdHJvbmciLCJhdWQiOiJhcGkiLCJuYW1lIjoi56CU5Y2a5pm65oWn55Sf5oCB6aG555uuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsImNsaWVudF9pZCI6IkU3RkI3RTZDLTZDNTMtNDQ1Ny1BQTNBLUFGNjc5NzU3NjhEMCIsIkFyZWFDb2RlIjoiMzcwMjEyIiwiRGVwYXJ0SUQiOiI0OTEiLCJqdGkiOiJmNThkY2NjZC1jYzk2LTQ2YTktODk0MC0zNjRmNzNhOWRlYjAiLCJJc0FwcCI6IjEiLCJFeHBpcmVUaW1lIjoiMjAyOC0wMy0xNSAxNzowMjowMyIsIm5iZiI6MTY3OTA0MzcyMywiZXhwIjoxODM2NzIzNzIzLCJpYXQiOjE2NzkwNDM3MjN9.w127NrwcGDldIwurr9AEfwb-JkGXFiffL5ge-WY3Xto");
//开始连接
connection.connect();
//获取响应数据
if (connection.getResponseCode() == 200) {
//获取返回的数据
is = connection.getInputStream();
if (is != null) {
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String temp = null;
while ((temp = br.readLine()) != null) {
result.append(temp);
}
}
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
connection.disconnect();// 关闭远程连接
}
return result.toString();
}
/**
*原生HttpURLConnection 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);
//设置是否可读取
connection.setDoOutput(true);
//设置响应是否可读取
connection.setDoInput(true);
//设置参数类型
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Connection", "keep-alive");
//拼装参数
if (param != null && !param.equals("")) {
//设置参数
os = connection.getOutputStream();
//拼装参数
os.write(param.getBytes("UTF-8"));
}
//设置权限
//设置请求头等
//开启连接
//connection.connect();
//读取响应
if (connection.getResponseCode() == 200) {
is = connection.getInputStream();
if (is != null) {
br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String temp = null;
if ((temp = br.readLine()) != null) {
result.append(temp);
}
}
}
//关闭连接
} 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();
}
public static void main(String[] str) throws UnsupportedEncodingException {
//原生HttpURLConnection
String getResult = HttpUtil.doGet("http://120.221.94.231:9012/api/api/v1/basic/data?mappingId=" + URLEncoder.encode("DataShare.s_riverr_share", "utf-8") + "&begin_time=" + URLEncoder.encode("2022-01-10 00:00:00", "utf-8") + "&end_time=" + URLEncoder.encode("2022-01-10 01:00:00", "utf-8"));
System.out.println(getResult);
JSONObject obj = new JSONObject();
obj.put("username", "ybzhst");
obj.put("userPwd", "90792B1E807ED347B9DB6CCD8FF2C9F1CA44D9A0");
obj.put("isApp", 1);
String postResult = HttpUtil.doPost("http://120.221.94.231:9012/api/api/v1/token", JSONObject.toJSONString(obj));
System.out.println(postResult);
}
}
Http请求示例
于 2023-03-20 10:16:49 首次发布