小于博客 小于博客
首页
  • Java学习笔记
  • Docker专区
  • 实战教程
  • Shell
  • 内存数据库
  • Vue学习笔记
  • Nginx
  • Php
  • CentOS
  • Docker
  • Gitlab
  • GitHub
  • MySql
  • MongoDB
  • OpenVPN
  • 配置文件详解
  • Other
  • ELK
  • K8S
  • Nexus
  • Jenkins
  • 随写编年
  • 电影音乐
  • 效率工具
  • 博客相关
  • 最佳实践
  • 迎刃而解
  • 学习周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • 网站状态 (opens new window)
    • json2go (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

小于博客

行者常至,为者常成
首页
  • Java学习笔记
  • Docker专区
  • 实战教程
  • Shell
  • 内存数据库
  • Vue学习笔记
  • Nginx
  • Php
  • CentOS
  • Docker
  • Gitlab
  • GitHub
  • MySql
  • MongoDB
  • OpenVPN
  • 配置文件详解
  • Other
  • ELK
  • K8S
  • Nexus
  • Jenkins
  • 随写编年
  • 电影音乐
  • 效率工具
  • 博客相关
  • 最佳实践
  • 迎刃而解
  • 学习周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • 网站状态 (opens new window)
    • json2go (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Java学习笔记

    • RequestBody和RequestParam区别全面详细
    • BigDecimal用法
    • Java笔试易错点记录
    • jsencrypt.js前端参数RSA加密
    • SpringBoot调用http请求的6种方式
      • 案例场景
        • 服务端
        • 接口信息
        • POST请求
        • GET请求(一)
        • GET请求(二)
      • Java调用http请求的6种方式
        • HttpURLConnection调用http请求
        • commons-httpclient调用http请求
        • 使用org.apache.httpcomponents调用http请求
        • 使用OkHttp调用http请求
        • 使用RestTemplate调用http请求
        • 结尾。
    • vue实现点击不同按钮展示不同内容
    • 精髓代码随手笔记
    • 经典代码汇总
    • 项目实战问题笔记
    • CentOS7下安装mysql5.7
    • SpringBoot 快速实现 api 加密!
  • Docker专区

  • Shell编程

  • 实战教程

  • 内存数据库

  • Vue学习笔记

  • 编程世界
  • Java学习笔记
小于博客
2024-01-18
目录

SpringBoot调用http请求的6种方式

场景:基于Spring Boot使用Java调用http请求的6种方式。服务端发布一个POST请求和2个GET请求。使用6种方式实现的客户端都调用服务端发布的这3个方法。可以直观感受和比对6种http请求的客户端。 版本:

Spring Boot 2.6.3
Spring Framework 5.3.15
Spring Cloud 2021.0.1
1
2
3

# 案例场景

本例实现6种方式客户端调用同一个服务端的3种方法。

# 服务端

在服务端发布一个POST请求,2个GET请求。

# 接口信息

# POST请求

[访问URL]: http://127.0.0.1:19091/server/comm/f1
[请求方式]: POST
[请求参数]: JSON
{"userName":"HangZhou20220719","tradeName":"Vue进阶教程"}
[返回值]: JSON
{code=200, message=成功}
1
2
3
4
5
6

# GET请求(一)

[访问URL]: http://127.0.0.1:19091/server/comm/f2
[请求方式]: GET
[请求参数]: String
obj=HangZhou20220719
[返回值]: JSON
{code=200, message=成功}
1
2
3
4
5
6

# GET请求(二)

[访问URL]: http://127.0.0.1:19091/server/comm/f3/{obj}
[请求方式]: GET
[请求参数]: String
obj=HangZhou20220719
[返回值]: JSON
{code=200, message=成功}
1
2
3
4
5
6

# Java调用http请求的6种方式

# HttpURLConnection调用http请求

  1. Jar包位置 HttpURLConnection,全称:java.net.HttpURLConnection。 JDK 1.8中自带的rt.jar包中的java.net包内的类。

  2. 客户端代码

public class Utils01JdkClient {
 public static void main(String[] args) throws Exception {
   f1();
   f2();
   f3();
 }
 /**
  * 1.使用HttpURLConnection调用服务端的POST请求
  * 服务端入参注解: @RequestBody
  */
 public static void f1() throws Exception {
   // 1.请求URL
   String postUrl = "http://127.0.0.1:19091/server/comm/f1";
   // 2.请求参数JSON格式
   Map<String, String> map = new HashMap<>();
   map.put("userName", "HangZhou20220718");
   map.put("tradeName", "Vue进阶教程");
   String json = JSON.toJSONString(map);
   // 3.创建连接与设置连接参数
   URL urlObj = new URL(postUrl);
   HttpURLConnection httpConn = (HttpURLConnection) urlObj.openConnection();
   httpConn.setRequestMethod("POST");
   httpConn.setRequestProperty("Charset", "UTF-8");
   // POST请求且JSON数据,必须设置
   httpConn.setRequestProperty("Content-Type", "application/json");
   // 打开输出流,默认是false
   httpConn.setDoOutput(true);
   // 打开输入流,默认是true,可省略
   httpConn.setDoInput(true);
   // 4.从HttpURLConnection获取输出流和写数据
   OutputStream oStream = httpConn.getOutputStream();
   oStream.write(json.getBytes());
   oStream.flush();
   // 5.发起http调用(getInputStream触发http请求)
   if (httpConn.getResponseCode() != 200) {
       throw new Exception("调用服务端异常.");
   }
   // 6.从HttpURLConnection获取输入流和读数据
   BufferedReader br = new BufferedReader(new InputStreamReader(httpConn.getInputStream()));
   String resultData = br.readLine();
   System.out.println("从服务端返回结果: " + resultData);
   // 7.关闭HttpURLConnection连接
   httpConn.disconnect();
 }
 /**
  * 2.使用HttpURLConnection调用服务端的GET请求
  * 服务端入参注解: @RequestParam
  */
 public static void f2() throws Exception {
  // 1.请求URL与组装请求参数
  String getUrl = "http://127.0.0.1:19091/server/comm/f2";
  String obj = "Vue进阶教程";
  String para = "?obj=" + URLEncoder.encode(obj, "UTF-8");
  getUrl = getUrl + para;
  // 2.创建连接与设置连接参数
  URL urlObj = new URL(getUrl);
  HttpURLConnection httpConn = (HttpURLConnection) urlObj.openConnection();
  httpConn.setRequestMethod("GET");
  httpConn.setRequestProperty("Charset", "UTF-8");
  // 3.发起http调用(getInputStream触发http请求)
  if (httpConn.getResponseCode() != 200) {
      throw new Exception("调用服务端异常.");
  }
  // 4.从HttpURLConnection获取输入流和读数据
  BufferedReader br = new BufferedReader(
          new InputStreamReader(httpConn.getInputStream()));
  String resultData = br.readLine();
  System.out.println("从服务端返回结果: " + resultData);
  // 5.关闭HttpURLConnection连接
  httpConn.disconnect();
 }
 /**
  * 3.使用HttpURLConnection调用服务端的GET请求
  * 服务端入参注解: @PathVariable
  */
 public static void f3() throws Exception {
  // 1.请求URL与组装请求参数
  String getUrl = "http://127.0.0.1:19091/server/comm/f3/";
  String obj = "Vue进阶教程";
  obj = URLEncoder.encode(obj, "UTF-8");
  getUrl = getUrl + obj;
  URL urlObj = new URL(getUrl);
  // 2.创建连接与设置连接参数
  HttpURLConnection httpConn = (HttpURLConnection) urlObj.openConnection();
   httpConn.setRequestMethod("GET");
   httpConn.setRequestProperty("charset", "UTF-8");
   // 3.发起http调用(getInputStream触发http请求)
   if (httpConn.getResponseCode() != 200) {
       throw new Exception("调用服务端异常.");
   }
   // 4.从HttpURLConnection获取输入流和读数据
   BufferedReader br = new BufferedReader(
           new InputStreamReader(httpConn.getInputStream()));
   String resultData = br.readLine();
   System.out.println("从服务端返回结果: " + resultData);
   // 5.关闭HttpURLConnection连接
   httpConn.disconnect();
 }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99

# commons-httpclient调用http请求

  1. Jar包位置 commons-httpclient,比较早的Jar包,在MVNRepository仓库中,查看的最新维护时间是:2007年8月。
<dependency>
  <groupId>commons-httpclient</groupId>
  <artifactId>commons-httpclient</artifactId>
  <version>3.1</version>
</dependency>
1
2
3
4
5
  1. 客户端代码
public class Utils02CommonsHttpClient {
 public static void main(String[] args) throws Exception {
  f1();
  f2();
  f3();
 }
 /**
  * 1.使用commons-httpclient调用服务端的POST请求
  * 服务端入参注解: @RequestBody
  */
 public static void f1() throws Exception {
  // 1.请求URL
  String postUrl = "http://127.0.0.1:19091/server/comm/f1";
  // 2.请求参数
  Map<String, String> map = new HashMap<>();
  map.put("userName", "HangZhou20220718");
  map.put("tradeName", "Vue进阶教程");
  String json = JSON.toJSONString(map);
  // 3.创建连接与设置连接参数
  HttpClient httpClient = new HttpClient();
  PostMethod postMethod = new PostMethod(postUrl);
  postMethod.addRequestHeader("Content-Type", "application/json");
  RequestEntity entity = new StringRequestEntity(json, "application/json", "UTF-8");
  postMethod.setRequestEntity(entity);
  //解决返回值中文乱码
  postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
  String resultData = "";
  // 4.发起请求
  int code = httpClient.executeMethod(postMethod);
  if (code != 200) {
      throw new Exception("调用服务端异常.");
  }
  // 5.接收返回值
  resultData = postMethod.getResponseBodyAsString();
  System.out.println("从服务端返回结果: " + resultData);
  // 6.关闭连接
  postMethod.releaseConnection();
 }
 /**
  * 2.使用commons-httpclient调用服务端的GET请求
  * 服务端入参注解: @RequestParam
  */
 public static void f2() throws Exception {
  // 1.请求URL与组装请求参数
  String getUrl = "http://127.0.0.1:19091/server/comm/f2";
  String obj = "Vue进阶教程";
  //入参有中文需要编码
  String para = "?obj=" + URLEncoder.encode(obj, "UTF-8");
  getUrl = getUrl + para;
  // 2.创建连接与设置连接参数
  HttpClient httpClient = new HttpClient();
  GetMethod getMethod = new GetMethod(getUrl);
  //解决返回值中文乱码
  getMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
  // 3.发起请求
  int code = httpClient.executeMethod(getMethod);
  String resultData = "";
  if (code != 200) {
      throw new Exception("调用服务端异常.");
  }
  // 4.接收返回值
  resultData = getMethod.getResponseBodyAsString();
  System.out.println("从服务端返回结果: " + resultData);
  // 5.关闭连接
  getMethod.releaseConnection();
 }
 /**
  * 3.使用commons-httpclient调用服务端的GET请求
  * 服务端入参注解: @PathVariable
  */
 public static void f3() throws Exception {
  // 1.请求URL与组装请求参数
  String getUrl = "http://127.0.0.1:19091/server/comm/f3/";
  String obj = "Vue进阶教程";
  //入参有中文需要编码
  obj = URLEncoder.encode(obj, "UTF-8");
  getUrl = getUrl + obj;
  // 2.创建连接与设置连接参数
  HttpClient httpClient = new HttpClient();
  GetMethod getMethod = new GetMethod(getUrl);
  //解决返回值中文乱码
  getMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");
  // 3.发起请求
  int code = httpClient.executeMethod(getMethod);
  String resultData = "";
  if (code != 200) {
      throw new Exception("调用服务端异常.");
  }
  // 4.接收返回值
  resultData = getMethod.getResponseBodyAsString();
  System.out.println("从服务端返回结果: " + resultData);
  // 5.关闭连接
  getMethod.releaseConnection();
 }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

# 使用org.apache.httpcomponents调用http请求

  1. Jar包位置 httpcomponents,在MVNRepository仓库中,查看的最新维护时间是:2020年10月。
<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.5.13</version>
</dependency>
1
2
3
4
5
  1. 客户端代码
public class Utils03HttpComponentsClient {
 public static void main(String[] args) throws Exception {
    f1();
    f2();
    f3();
 }
 /**
  * 1.使用org.apache.httpcomponents调用服务端的POST请求
  * 服务端入参注解: @RequestBody
  */
 public static void f1() throws Exception {
   // 1.请求URL
   String postUrl = "http://127.0.0.1:19091/server/comm/f1";
   // 2.请求参数
   Map<String, String> map = new HashMap<>();
   map.put("userName", "HangZhou20220718");
   map.put("tradeName", "Vue进阶教程");
   String json = JSON.toJSONString(map);
   // 3.创建连接与设置连接参数
   CloseableHttpClient httpClient = HttpClientBuilder.create().build();
   HttpPost httpPost = new HttpPost(postUrl);
   StringEntity entity = new StringEntity(json);
   entity.setContentEncoding("UTF-8");
   entity.setContentType("application/json");
   httpPost.setEntity(entity);
   // 4.发起请求与接收返回值
   HttpResponse response = httpClient.execute(httpPost);
   if (response.getStatusLine().getStatusCode() != 200) {
       throw new Exception("调用服务端异常.");
   }
   HttpEntity res = response.getEntity();
   String resultData = EntityUtils.toString(res);
   System.out.println("从服务端返回结果: " + resultData);
   // 5.关闭连接
   httpClient.close();
 }
 /**
  * 2.使用org.apache.httpcomponents调用服务端的GET请求
  * 服务端入参注解: @RequestParam
  */
 public static void f2() throws Exception {
   // 1.请求URL与组装请求参数
   String getUrl = "http://127.0.0.1:19091/server/comm/f2";
   String obj = "Vue进阶教程";
   String para = "?obj=" + URLEncoder.encode(obj, "UTF-8");
   getUrl = getUrl + para;
   // 2.创建连接与设置连接参数
   CloseableHttpClient httpClient = HttpClientBuilder.create().build();
   HttpGet httpGet = new HttpGet(getUrl);
   // 3.发起请求与接收返回值
   HttpResponse response = httpClient.execute(httpGet);
   if (response.getStatusLine().getStatusCode() != 200) {
       throw new Exception("调用服务端异常.");
   }
   HttpEntity res = response.getEntity();
   String resultData = EntityUtils.toString(res);
   System.out.println("从服务端返回结果: " + resultData);
   // 4.关闭连接
   httpClient.close();
 }
 
 /**
  * 3.使用org.apache.httpcomponents调用服务端的GET请求
  * 服务端入参注解: @PathVariable
  */
 public static void f3() throws Exception {
   // 1.请求URL与组装请求参数
   String getUrl = "http://127.0.0.1:19091/server/comm/f3/";
   String obj = "Vue进阶教程";
   //入参有中文需要编码
   obj = URLEncoder.encode(obj, "UTF-8");
   getUrl = getUrl + obj;
   // 2.创建连接与设置连接参数
   CloseableHttpClient httpClient = HttpClientBuilder.create().build();
   HttpGet httpGet = new HttpGet(getUrl);
   // 3.发起请求与接收返回值
   HttpResponse response = httpClient.execute(httpGet);
   if (response.getStatusLine().getStatusCode() != 200) {
       throw new Exception("调用服务端异常.");
   }
   HttpEntity res = response.getEntity();
   String resultData = EntityUtils.toString(res);
   System.out.println("从服务端返回结果: " + resultData);
   // 4.关闭连接
   httpClient.close();
 }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87

# 使用OkHttp调用http请求

  1. Jar包位置 com.squareup.okhttp3,本例使用版本。
<dependency>
  <groupId>com.squareup.okhttp3</groupId>
  <artifactId>okhttp</artifactId>
  <version>4.10.0</version>
  <exclusions>
    <exclusion>
      <groupId>com.google.android</groupId>
      <artifactId>android</artifactId>
    </exclusion>
  </exclusions>
</dependency>
1
2
3
4
5
6
7
8
9
10
11
  1. 客户端代码

public class Utils04OkHttpClient {
 public static void main(String[] args) throws Exception {
  f1();
  f2();
  f3();
 }
 /**
  *  1.使用okhttp调用服务端的POST请求
  *    服务端入参注解: @RequestBody
  * */
 public static void f1() throws Exception {
  // 1.请求URL
  String postUrl = "http://127.0.0.1:19091/server/comm/f1";
  // 2.请求参数
  Map<String, String> map = new HashMap<>();
  map.put("userName", "HangZhou20220718");
  map.put("tradeName", "Vue进阶教程");
  String json = JSON.toJSONString(map);
  // 3.创建连接与设置连接参数
  MediaType mediaType = MediaType.parse("application/json; charset=UTF-8");
  RequestBody requestBody = RequestBody.Companion.create(json, mediaType);
  Request request = new Request.Builder().url(postUrl).post(requestBody).build();
  OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
  // 4.发起请求与接收返回值
  Response response = okHttpClient.newCall(request).execute();
  String resultData = response.body().string();
  System.out.println("从服务端返回结果: " + resultData);
 }
 /**
  *  2.使用okhttp调用服务端的GET请求
  *    服务端入参注解: @RequestParam
  * */
 public static void f2() throws Exception {
  // 1.请求URL与组装请求参数
  String getUrl = "http://127.0.0.1:19091/server/comm/f2";
  String obj = "Vue进阶教程";
  String para = "?obj=" + URLEncoder.encode(obj, "UTF-8");
  getUrl = getUrl + para;
  // 2.创建连接与设置连接参数
  Request request = new Request.Builder().url(getUrl).build();
  OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
  // 3.发起请求与接收返回值
  Response response = okHttpClient.newCall(request).execute();
  String resultData = response.body().string();
  System.out.println("从服务端返回结果: " + resultData);
 }
 /**
  *  3.使用okhttp调用服务端的GET请求
  *    服务端入参注解: @PathVariable
  * */
 public static void f3() throws Exception {
  // 1.请求URL与组装请求参数
  String getUrl = "http://127.0.0.1:19091/server/comm/f3/";
  String obj = "Vue进阶教程";
  obj = URLEncoder.encode(obj, "UTF-8");
  getUrl = getUrl + obj;
  // 2.创建连接与设置连接参数
  Request request = new Request.Builder().url(getUrl).build();
  OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
  // 3.发起请求与接收返回值
  Response response = okHttpClient.newCall(request).execute();
  String resultData = response.body().string();
  System.out.println("从服务端返回结果: " + resultData);
 }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

# 使用RestTemplate调用http请求

  1. Jar包位置 RestTemplate,全称org.springframework.web.client.RestTemplate。 本例使用版本。
dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>5.3.15</version>
  <scope>compile</scope>
</dependency>
1
2
3
4
5
6
  1. 客户端代码
public class Utils05RestTemplateClient {
 public static void main(String[] args) throws Exception {
  f1();
  f2();
  f3();
 }
 /**
  * 1.使用RestTemplate调用服务端的POST请求
  * 服务端入参注解: @RequestBody
  */
 public static void f1() throws Exception {
  // 1.请求URL
  String postUrl = "http://127.0.0.1:19091/server/comm/f1";
  // 2.请求参数JSON格式
  Map<String, String> map = new HashMap<>();
  map.put("userName", "HangZhou20220718");
  map.put("tradeName", "Vue进阶教程");
  String json = JSON.toJSONString(map);
  // 3.创建RestTemplate
  RestTemplate restTemplate = new RestTemplate();
  // 4.设置RestTemplate参数(请求头和body)
  HttpHeaders headers = new HttpHeaders();
  MediaType mediaType = MediaType.parseMediaType("application/json; charset=UTF-8");
  headers.setContentType(mediaType);
  headers.add("Accept", "application/json");
  HttpEntity<String> entity = new HttpEntity<>(json, headers);
  // 5.使用RestTemplate发起请求与接收返回值
  String resultData = restTemplate.postForObject(postUrl, entity, String.class);
  System.out.println("从服务端返回结果: " + resultData);
 }
 /**
  * 2.使用RestTemplate调用服务端的GET请求
  * 服务端入参注解: @RequestParam
  */
 public static void f2() throws Exception {
  // 1.请求URL与组装请求参数
  String getUrl = "http://127.0.0.1:19091/server/comm/f2";
  String obj = "Vue进阶教程";
  String para = "?obj=" + obj;
  getUrl = getUrl + para;
  // 2.创建RestTemplate
  RestTemplate restTemplate = new RestTemplate();
  // 3.使用RestTemplate发起请求与接收返回值
  String resultData = restTemplate.getForObject(getUrl, String.class);
  System.out.println("从服务端返回结果: " + resultData);
 }
 /**
  * 3.使用RestTemplate调用服务端的GET请求
  * 服务端入参注解: @PathVariable
  */
 public static void f3() throws Exception {
  // 1.请求URL与组装请求参数
  String getUrl = "http://127.0.0.1:19091/server/comm/f3/";
  String obj = "Vue进阶教程";
  getUrl = getUrl + obj;
  // 2.创建RestTemplate
  RestTemplate restTemplate = new RestTemplate();
  // 3.使用RestTemplate发起请求与接收返回值
  String resultData = restTemplate.getForObject(getUrl, String.class);
  System.out.println("从服务端返回结果: " + resultData);
 }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
背景色是:orange

# 结尾。

上次更新: 2024/01/18, 15:19:41

← jsencrypt.js前端参数RSA加密 vue实现点击不同按钮展示不同内容→

最近更新
01
SpringBoot 快速实现 api 加密!
03-21
02
SpringBoot整合SQLite
03-07
03
SpringBoot配置使用H2数据库的简单教程
02-21
更多文章>
Theme by Vdoing | Copyright © 2017-2024 | 点击查看十年之约 | 豫ICP备2022014539号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式