锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】

springboot服务端接口公网远程调试 - 实现HTTP服务监听【端口映射】

0
  • 软件开发
  • 发布于 2024-08-16
  • 0 次阅读
黄健
黄健

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

文章目录

  • 前言
  • 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 请求侦听

转载自 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;
    }
}
  1. 内网穿透

这里我们使用 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

  • 简单穿透测试
cpolar http 8080

按 ctrl+c 退出

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

2.2 创建隧道映射本地端口

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

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

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

点击创建

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

2.3 测试公网地址

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

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

  1. 固定公网地址

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

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

3.1 保留一个二级子域名

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

3.2 配置二级子域名

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

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

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

点击更新

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

3.2 测试使用固定公网地址

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

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

  1. Cpolar 监听器

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

4.1 开启侦听功能

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

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

4.2 请求侦听

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

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

标签: #Spring Boot 173 #软件开发 1171 #JAVA 991
相关文章

万字:支付“核心系统”详解 2024-11-02 15:33

专栏作者:隐墨星辰 \| 主编:陈天宇宙 这篇文章也尝试化繁为简,探寻支付系统的本质,讲清楚在线支付系统最核心的一些概念和设计理念。 虽然支付行业已经过了风头最劲的时光,但跨境支付仍然在蓬勃发展,每年依然有很多新人进入这个行业,这篇文章尝试为这些刚入行的新人提供一点帮助。 文章只介绍一些支付行业十几

资深支付架构师视角:实战从问题定义到代码落地的完整套路 2024-11-02 15:33

前言 今天从一个实际案例入手,介绍站在架构师的角度,如何识别并定义问题,提炼需求,技术方案选型,再到详细设计,最后利用AI的能力协助写出核心的代码,验证与调优。 解决问题存在一定的模式,也可以称之为框架,总结出自己的思考和解题框架,以后再碰到同类型的问题就可以如庖丁解牛一样容易。 很多年前,我写代码

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

设计模式第16讲——迭代器模式(Iterator) 2024-10-08 11:24

一、什么是迭代器模式 迭代器模式是一种行为型设计模式,它提供了一种统一的方式来访问集合对象中的元素,而不是暴露集合内部的表示方式。简单地说,就是将遍历集合的责任封装到一个单独的对象中,我们可以按照特定的方式访问集合中的元素。 二、角色组成 抽象迭代器(Iterator):定义了遍历聚合对象所需的方法

vue2路由和vue3路由区别及原理 2024-10-08 11:24

一、Vue2 与 Vue3 路由的区别 1. 创建路由实例方式的不同 Vue 2 中,通过 Vue.use() 注册路由插件,并通过 new VueRouter() 来创建路由实例。 import Vue from 'vue';import VueRouter from 'vue-router';i

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.