【服务器】springboot实现HTTP服务监听

简介: 【服务器】springboot实现HTTP服务监听

转载自cpolar内网穿透的文章:Springboot服务端接口公网远程调试,并实现HTTP服务监听


前言


前后端分离项目中,在调用接口调试时候,我们可以通过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


21bdb135d4e0186871c7f22992d1e8f1.png

  • 简单穿透测试
cpolar http 8080
  • 向系统添加服务
sudo systemctl enable cpolar


  • 启动cpolar服务
sudo systemctl start cpolar


  • 查看服务状态

04eec9117d4ad12d7cd91e7710f13088.png


2.2 创建隧道映射本地端口


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


860047544969ee14237e3d57a94c5d43.png

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

隧道名称:可自定义命名,注意不要与已有的隧道名称重复

协议:选择http

本地地址:8080

域名类型:免费选择随机域名

地区:选择China vip

点击创建


c60b2b08aac03aea044423f59c667d4c.png


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


9e707912c431500158293790e84b5856.png


2.3 测试公网地址


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


20650ddaa502f5ed825d8b37b1ce1011.png


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


c760f052912c27fc80d2d23991d65b64.png


3. 固定公网地址


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


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


3.1 保留一个二级子域名


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


08001e24e374cebf307036e2c4e6bddf.png


3.2 配置二级子域名


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

70a50dff15bc61c6b7bdc47dddcc8542.png


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

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

点击更新


a8bf35f2cf0c0252e2bedb2118f8524a.png


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


0a886a4bac24e57640e015117d066933.png


3.2 测试使用固定公网地址


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


50518f854a2215ccd0067e428dc04be1.png


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

b071e9626c659f5641a33bdbb3abfe45.png

4. Cpolar监听器


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


4.1 开启侦听功能


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


ea7231d30368cf47043b3ac6d4c6080b.png

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

c8460dabe5dac83118e8b9f71c9c0f7b.png


4.2 请求侦听

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

372e34870723627ba2699c2428cda6e5.png



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


55b899cbf6e137cc424e1e576d1c98f6.png


目录
打赏
0
0
0
0
24
分享
相关文章
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
267 17
Spring Boot 两种部署到服务器的方式
java springboot监听事件和处理事件
通过上述步骤,开发者可以在Spring Boot项目中轻松实现事件的发布和监听。事件机制不仅解耦了业务逻辑,还提高了系统的可维护性和扩展性。掌握这一技术,可以显著提升开发效率和代码质量。
94 33
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
71 6
java springboot监听事件和处理事件
通过上述步骤,开发者可以在Spring Boot项目中轻松实现事件的发布和监听。事件机制不仅解耦了业务逻辑,还提高了系统的可维护性和扩展性。掌握这一技术,可以显著提升开发效率和代码质量。
82 13
|
1月前
|
Java Spring Boot监听事件和处理事件
通过上述步骤,我们可以在Java Spring Boot应用中实现事件的发布和监听。事件驱动模型可以帮助我们实现组件间的松耦合,提升系统的可维护性和可扩展性。无论是处理业务逻辑还是系统事件,Spring Boot的事件机制都提供了强大的支持和灵活性。希望本文能为您的开发工作提供实用的指导和帮助。
107 15
Java Springboot监听事件和处理事件
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解Spring Boot中的事件机制,并在实际开发中灵活应用,提高系统的可维护性和扩展性。
65 7
|
3月前
|
如何在无需重新启动服务器的情况下在 Spring Boot 上重新加载我的更改?
如何在无需重新启动服务器的情况下在 Spring Boot 上重新加载我的更改?
208 8
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
178 4
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
这篇文章详细介绍了如何将Spring Boot与Dubbo和Zookeeper整合,并通过Dubbo管理界面监控服务注册情况。
319 0
dubbo学习三:springboot整合dubbo+zookeeper,并使用dubbo管理界面监控服务是否注册到zookeeper上。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
异步通信 对于BS(Browser-Server 浏览器)架构,很多情景下server的处理时间较长。 如果浏览器发送请求后,保持跟server的连接,等待server响应,那么一方面会对用户的体验有负面影响; 另一方面,很有可能会由于超时,提示用户服务请求失败。
787 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等