private String pointId;
/**
- 名称
*/
private String name;
/**
- 绘制数据
*/
private String value;
/**
- 编码
*/
private String code;
/**
- 创建时间
*/
private Date createTime;
}
HTTP请求代理工具类
===========
import lombok.extern.slf4j.Slf4j;
import org.apache.http.Consts;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.util.EntityUtils;
import javax.net.ssl.SSLContext;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
-
HTTP请求代理类
-
@author tarzan Liu
-
@description 发送Get Post请求
*/
@Slf4j
public class HttpProxyUtil {
/**
-
使用URLConnection进行GET请求
-
@param api_url
-
@return
*/
public static String sendGet(String api_url) {
return sendGet(api_url, “”, “utf-8”);
}
/**
-
使用URLConnection进行GET请求
-
@param api_url
-
@param param
-
@return
*/
public static String sendGet(String api_url, String param) {
return sendGet(api_url, param, “utf-8”);
}
/**
-
使用URLConnection进行GET请求
-
@param api_url 请求路径
-
@param param 请求格式有name1=value1&name2=value2、json、xml、map或其他形式,具体要看接收方的取值, 可以为空
-
@param charset 字符集
-
@return
*/
public static String sendGet(String api_url, String param, String charset) {
StringBuffer buffer = new StringBuffer();
try {
// 判断有无参数,若是拼接好的url,就不必再拼接了
if (param != null && !“”.equals(param)) {
api_url = api_url + “?” + param;
}
log.info(“请求的路径是:” + api_url);
URL realUrl = new URL(api_url);
// 打开联接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty(“accept”, “/”);
conn.setRequestProperty(“connection”, “Keep-Alive”);
conn.setRequestProperty(“user-agent”, “Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)”);
conn.setConnectTimeout(12000); //设置连接主机超时(单位:毫秒)
conn.setReadTimeout(12000); // 设置从主机读取数据超时(单位:毫秒)
conn.connect(); // 建立实际的联接
// 定义 BufferedReader输入流来读取URL的相应
try (BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset))) {
String line;
while ((line = in.readLine()) != null) {
// buffer.append(“\n”+line);
buffer.append(line);
}
}
} catch (Exception e) {
log.error("发送GET请求出现异常! " + e.getMessage());
return null;
}
// log.info(“响应返回数据:” + buffer.toString());
return buffer.toString();
}
/**
-
使用URLConnection进行POST请求
-
@param api_url 请求路径
-
@param param 请求格式有name1=value1&name2=value2、json、xml、map或其他形式,具体要看接收方的取值,最好不为空
-
@return
*/
public static String sendPost(String api_url, String param) {
return sendPost(api_url, param, “utf-8”);
}
/**
-
使用URLConnection进行POST请求
-
@param api_url 请求路径
-
@param param 请求格式有name1=value1&name2=value2、json、xml、map或其他形式,具体要看接收方的取值,最好不为空
-
@param charset 字符集
-
@return
*/
public static String sendPost(String api_url, String param, String charset) {
StringBuffer buffer = new StringBuffer();
try {
log.info(“请求的路径是:” + api_url + “,参数是:” + param);
URL realUrl = new URL(api_url);
// 打开联接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty(“accept”, “/”);
conn.setRequestProperty(“connection”, “Keep-Alive”);
conn.setRequestProperty(“user-agent”, “Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; SV1)”);
conn.setConnectTimeout(12000); //设置连接主机超时(单位:毫秒)
conn.setReadTimeout(12000); // 设置从主机读取数据超时(单位:毫秒)
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
try (PrintWriter out = new PrintWriter(conn.getOutputStream())) {
out.print(param); // 发送请求参数
out.flush();// flush输出流的缓冲
}
// 定义 BufferedReader输入流来读取URL的相应,得指明使用UTF-8编码,否则到API服务器XML的中文不能被成功识别
try (BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset))) {
String line;
while ((line = in.readLine()) != null) {
// buffer.append(“\n”+line);
buffer.append(line);
}
}
} catch (Exception e) {
log.error("发送POST请求出现异常! " + e.getMessage());
e.printStackTrace();
}
log.info(“响应返回数据:” + buffer.toString());
return buffer.toString();
}
public static CloseableHttpClient createSSLClientDefault() throws Exception {
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new AllTrustStrategy()).build();
SSLConnectionSocketFactory sslSf = new SSLConnectionSocketFactory(sslContext);
return HttpClients.custom().setSSLSocketFactory(sslSf).build();
}
// 加载证书
private static class AllTrustStrategy implements TrustStrategy {
public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
return true;
}
}
/**
-
支持https请求
-
@param url
-
@param param
-
@return
-
@throws Exception
*/
public static String sendHttpClientPost(String url, Map<String, String> param) throws Exception {
CloseableHttpClient httpClient = createSSLClientDefault();
HttpPost httpPost = null;
CloseableHttpResponse response = null;
String result = “”;
try {
// 发起HTTP的POST请求
httpPost = new HttpPost(url);
List paramList = new ArrayList();
for (String key : param.keySet()) {
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/9287b602b2d7c4a438bb9b4bb2c9afa7.jpeg)
总结
谈到面试,其实说白了就是刷题刷题刷题,天天作死的刷。。。。。
为了准备这个“金三银四”的春招,狂刷一个月的题,狂补超多的漏洞知识,像这次美团面试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的
并且我也将自己刷的题全部整理成了PDF或者Word文档(含详细答案解析)
66个Java面试知识点
架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)
算法刷题(PDF)
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!
。。。。
为了准备这个“金三银四”的春招,狂刷一个月的题,狂补超多的漏洞知识,像这次美团面试问的算法、数据库、Redis、设计模式等这些题目都是我刷到过的
并且我也将自己刷的题全部整理成了PDF或者Word文档(含详细答案解析)
[外链图片转存中…(img-LCgWFPZx-1712202159789)]
66个Java面试知识点
架构专题(MySQL,Java,Redis,线程,并发,设计模式,Nginx,Linux,框架,微服务等)+大厂面试题详解(百度,阿里,腾讯,华为,迅雷,网易,中兴,北京中软等)
[外链图片转存中…(img-pU68Zo1E-1712202159789)]
算法刷题(PDF)
[外链图片转存中…(img-Bma63qDr-1712202159789)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门即可获取!