本地搭建springboot服务并实现公网远程调试本地接口

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

  • 前言
  • 1. 本地环境搭建
    • 1.1 环境参数
    • 1.2 搭建 springboot 服务项目
  • 2. 内网穿透
    • 2.1 安装配置 cpolar 内网穿透
      • 2.1.1 windows 系统
      • 2.1.2 linux 系统
    • 2.2 创建隧道映射本地端口
    • 2.3 测试公网地址
  • 3. 固定公网地址
    • 3.1 保留一个二级子域名
    • 3.2 配置二级子域名
    • 3.2 测试使用固定公网地址
  • 4. Cpolar 监听器
    • 4.1 开启侦听功能
    • 4.2 请求侦听

前言

本文主要介绍如何本地搭建 springboot 服务项目并结合内网穿透工具,轻松实现远程访问本地服务端接口进行调试,无需公网 IP。

前后端分离项目中,在调用接口调试时候,我们可以通过 cpolar 内网穿透将本地服务端接口模拟公共网络环境远程调用调试,本次教程我们以 Java 服务端接口为例。

1. 本地环境搭建

1.1 环境参数

  • JDK1.8
  • IDEA
  • SpringBoot
  • Maven
  • Tomcat9.0
  • Postman

1.2 搭建 springboot 服务项目

搭建一个 springboot 服务的项目,编写一个接口,为了更好直观看到,这里创建一个 pos 请求的接口

@RestController
@RequestMapping("/test")
public class InterfaceTest {/*** 测试接口* @param data* @return Map<String,String>*/@PostMapping("/interTest")public Map<String,String>interTest(@RequestBody Map<String,String> data){System.out.println(data);if (data.size()>0){return  data;}data.put("code","404");return data;}
}

2. 内网穿透

这里我们使用 cpolar 来进行内网穿透,支持 http/https/tcp 协议,不限制流量,无需公网 IP,也不用设置路由器,使用简单。

2.1 安装配置 cpolar 内网穿透

cpolar 官网:https://www.cpolar.com/

2.1.1 windows 系统

进入 cpolar 官网后,下载 windows 版本版本,双击安装包一路默认安装即可。

2.1.2 linux 系统

  • cpolar 安装(国内使用)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 或 cpolar 短链接安装方式:(国外使用)
curl -sL https://git.io/cpolar | sudo bash
  • 查看版本号,有正常显示版本号即为安装成功
cpolar version
  • token 认证

登录 cpolar 官网后台,点击左侧的验证,查看自己的认证 token,之后将 token 贴在命令行里

cpolar authtoken xxxxxxx

20230417112726

  • 简单穿透测试
cpolar http 8080

按 ctrl+c 退出

  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动 cpolar 服务
sudo systemctl start cpolar
  • 查看服务状态

20230417112718

2.2 创建隧道映射本地端口

cpolar 安装成功后,在浏览器上访问本地 9200 端口【http://localhost:9200】,使用 cpolar 账号登录。

20230130105810

点击左侧仪表盘的隧道管理——创建隧道,创建一个 tomcat 的 8080 端口 http 隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择 http
  • 本地地址:8080
  • 域名类型:免费选择随机域名
  • 地区:选择 China vip

点击创建

20230130105901

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网地址,然后复制地址

20230130105902

2.3 测试公网地址

这里以 Postman 接口调试工具向接口发送请求,在 postman 创建一个 post 请求方式.输入复制的公网地址加上接口路径,参数使用 JSON 格式,设置好参数点击

20230130105903

在服务接口端 debug 调试接口,查看请求是否进入接口,进入接口表示调用成功

20230130105904

3. 固定公网地址

由于以上使用 cpolar 所创建的隧道使用的是随机公网地址,24 小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化

注意需要将 cpolar 套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。【cpolar.cn 已备案】

3.1 保留一个二级子域名

登录 cpolar 官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

20230130105905

3.2 配置二级子域名

访问http://127.0.0.1:9200/,登录 cpolar web UI 管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的 8080 隧道,点击右侧的编辑

20230130105906

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名,本例为 test01

点击更新

20230130105907

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留过的二级子域名名称,将其复制下来

20230130105908

3.2 测试使用固定公网地址

打开 postman,使用固定 http 地址进行调用

20230130105909

同样在服务端 debug 调试查看请求是否进入接口,进入接口表示成功

20230130105910

4. Cpolar 监听器

我们还可以使用 cpolar 监听器(http://localhost:4040)查看接口请求日志,处理一个讨厌的 bug。甚至可以重播请求消息包,加速测试的请求,单击重放(Replay)按钮,重新发送该 HTTP 信令请求,而不是手动重新触发操作。下面介绍使用 cpolar 监听器监听请求。

4.1 开启侦听功能

选择我们刚刚创建配置的 http 隧道,并点击右侧的编辑

20230130105911

打开高级设置,开启侦听功能

20230130105912

4.2 请求侦听

在浏览器访问本地 4040 端口,http://localhost:4040

20230130105913

向服务端发送请求后,此处就会显示相关的请求日志,可以看到请求的方式,请求的数据,接口路径,和返回状态及结果,极大提高了调试效率。

20230130105914

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/681899.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

漫威争锋Marvel Rivals锁区怎么办 锁区怎么搜索教程

即将面世的《漫威争锋》&#xff08;Marvel Rivals&#xff09;&#xff0c;一款备受瞩目的PvP射击游戏&#xff0c;是与漫威官方携手的杰作&#xff0c;并将于5月11日早上9点正式启动其封闭Alpha测试环节&#xff0c;这一测试阶段将持续整整十天。在初次测试的盛宴中&#xff…

单位圆内的正交向量多项式,第一部分:由Zernike多项式的梯度导出的基组

clear all; close all; clc; %% I1=double(imread(E:\zhenlmailcom-E8E745\华为家庭存\image\imgs\right\0.bmp)); I2=double(imread(E:\zhenlmailcom-E8E745\华为家庭存储\.法\image\imgs\right\1.bmp)); I3=double(imread(E:\zhenlmailcom-E8E745\华为家庭存储\.p\image\imgs…

笔记本【记录每日坑点】

用来记录工作中遇到的问题 目录 引用数据类型的相互影响事件捕获导致的错误触发事件 引用数据类型的相互影响 类似如下代码&#xff1a; const obj {a: 1, b: 2};const array [];for(let i 0; i<4; i){array.push(obj)}array[0].a fixconsole.log(array);将已定义的对象…

PyQt5 解决界面无响应方案

文章目录 前言版本案例解决方案QThreadQTimer 局部变量创建异步线程导致 UI 未响应如果 QTimer 不使用 self.time 写法 个人简介 前言 在PyQt5中&#xff0c;GUI线程通常指的是Qt的主事件循环线程&#xff0c;也称为主线程。主线程负责处理GUI事件、更新UI界面等任务。在PyQt5…

【ETAS CP AUTOSAR工具链】RTA-OS基本概念与开发流程

RTA-OS基于早期ETAS操作系统的成熟技术&#xff0c;迄今为止&#xff0c;已在全球超过3.5亿个ECU中使用。RTA-OS是一个可静态配置的抢占式实时操作系统(RTOS)&#xff0c;它常被用于资源受限但有着高性能要求的方案中。内核的实现不仅遵循了AUTOSAR R3.x、R4.0、R4.1、R4.2、R4…

科学碳目标(SBTI)认证是什么?

科学碳目标&#xff08;SBTI&#xff09;认证是一种基于科学的减排目标认证和监测体系&#xff0c;旨在确保企业和国家制定的减排目标符合科学标准&#xff0c;并且能够实现全球气候目标的减缓效应。这个认证体系由全球碳项目和世界资源研究所&#xff08;WRI&#xff09;共同开…

视频号小店怎么做?店铺运营详细步骤讲解,全网独家

大家好&#xff0c;我是电商笨笨熊 视频号小店作为今年的电商黑马&#xff0c;下一个站在风口的项目&#xff0c;自是吸引了不少的玩家&#xff1b; 先不说视频号自身庞大的流量体系&#xff0c;单单是高客单的市场就值得尝试一把&#xff1b; 且当前视频号小店刚刚推出不久…

SolidWorks教育版本好用吗?

SolidWorks教育版本&#xff0c;作为一款专为教育领域设计的三维CAD软件&#xff0c;以其直观易用的界面、强大的功能以及丰富的教育资源&#xff0c;受到了广大师生的青睐。那么&#xff0c;SolidWorks教育版本好用吗&#xff1f;答案是肯定的。 首先&#xff0c;SolidWorks教…

【工具】如何提取一个mp4文件的关键帧

文章目录 怎么做如何安装ffmepgUbuntu 或 DebianCentOS 或 FedoramacOSWindows其他 Linux 发行版 实践什么是关键帧 怎么做 你可以使用ffmpeg这个强大的多媒体处理工具来提取mp4文件中的关键帧。以下是一个示例命令&#xff0c;可以使用ffmpeg从mp4文件中提取关键帧&#xff1…

网络编程基础回顾

计算机网络&#xff08;5&#xff09;&#xff1a;运输层 OSI 模型与 TCP/IP 协议 OSI七层协议模型 (open system interconnection) 应用层&#xff1a;为应用数据提供服务表示层&#xff1a;数据格式转化&#xff0c;数据加密会话层&#xff1a;建立、维护和管理会话传输层&…

Jmeter性能测试(五)

一、Jmeter参数化常用方式 1、CSV 数据文件设置 2、查询数据库(JDBC Connection Configuration) 二、CSV 数据文件设置 1、准备一个txt文件(不需要写表头&#xff0c;直接写你要用的数据就行了&#xff0c;多个字段用英文逗号隔开) 2、添加一个CSV 数据文件设置(放全局最上…

PaddleOCR使用

最近在项目过程中需要用到文字识别的能力&#xff0c;之前没有接触过。需要对现有的开源能力进行调研和学习。 1. 基本概念 1.1 PaddlePaddle PaddlePaddle 是一个由百度开源&#xff0c;基于 Python 的深度学习框架。PaddlePaddle 针对不同的硬件环境提供了不同的安装包或安…