SpringBoot實(shí)現(xiàn)HTTP服務(wù)監(jiān)聽(tīng)的代碼示例
前言
前后端分離項(xiàng)目中,在調(diào)用接口調(diào)試時(shí)候,我們可以通過(guò)cpolar內(nèi)網(wǎng)穿透將本地服務(wù)端接口模擬公共網(wǎng)絡(luò)環(huán)境遠(yuǎn)程調(diào)用調(diào)試,本次教程我們以Java服務(wù)端接口為例。
1. 本地環(huán)境搭建
1.1 環(huán)境參數(shù)
- JDK1.8
- IDEA
- SpringBoot
- Maven
- Tomcat9.0
- Postman
1.2 搭建springboot服務(wù)項(xiàng)目
搭建一個(gè)springboot服務(wù)的項(xiàng)目,編寫(xiě)一個(gè)接口,為了更好直觀看到,這里創(chuàng)建一個(gè)pos請(qǐng)求的接口
@RestController @RequestMapping("/test") public class InterfaceTest { /** * 測(cè)試接口 * @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. 內(nèi)網(wǎng)穿透
這里我們使用cpolar來(lái)進(jìn)行內(nèi)網(wǎng)穿透,支持http/https/tcp協(xié)議,不限制流量,無(wú)需公網(wǎng)IP,也不用設(shè)置路由器,使用簡(jiǎn)單。
2.1 安裝配置cpolar內(nèi)網(wǎng)穿透
cpolar官網(wǎng):https://www.cpolar.com/
2.1.1 windows系統(tǒng)
進(jìn)入cpolar官網(wǎng)后,下載windows版本版本,雙擊安裝包一路默認(rèn)安裝即可。
2.1.2 linux系統(tǒng)
- cpolar 安裝(國(guó)內(nèi)使用)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- 或 cpolar短鏈接安裝方式:(國(guó)外使用)
curl -sL https://git.io/cpolar | sudo bash
- 查看版本號(hào),有正常顯示版本號(hào)即為安裝成功
cpolar version
- token認(rèn)證
登錄cpolar官網(wǎng)后臺(tái),點(diǎn)擊左側(cè)的驗(yàn)證,查看自己的認(rèn)證token,之后將token貼在命令行里
cpolar authtoken xxxxxxx
- 簡(jiǎn)單穿透測(cè)試
cpolar http 8080
按ctrl+c退出
- 向系統(tǒng)添加服務(wù)
sudo systemctl enable cpolar
- 啟動(dòng)cpolar服務(wù)
sudo systemctl start cpolar
- 查看服務(wù)狀態(tài)
2.2 創(chuàng)建隧道映射本地端口
cpolar安裝成功后,在瀏覽器上訪問(wèn)本地9200端口【http://localhost:9200】,使用cpolar賬號(hào)登錄。
點(diǎn)擊左側(cè)儀表盤(pán)的隧道管理——創(chuàng)建隧道,創(chuàng)建一個(gè)tomcat的8080端口 http隧道
- 隧道名稱:可自定義命名,注意不要與已有的隧道名稱重復(fù)
- 協(xié)議:選擇http
- 本地地址:8080
- 域名類型:免費(fèi)選擇隨機(jī)域名
- 地區(qū):選擇China vip
點(diǎn)擊創(chuàng)建
隧道創(chuàng)建成功后,點(diǎn)擊左側(cè)的狀態(tài)——在線隧道列表,查看所生成的公網(wǎng)地址,然后復(fù)制地址
2.3 測(cè)試公網(wǎng)地址
這里以Postman接口調(diào)試工具向接口發(fā)送請(qǐng)求,在postman創(chuàng)建一個(gè)post請(qǐng)求方式.輸入復(fù)制的公網(wǎng)地址加上接口路徑,參數(shù)使用JSON格式,設(shè)置好參數(shù)點(diǎn)擊
在服務(wù)接口端debug調(diào)試接口,查看請(qǐng)求是否進(jìn)入接口,進(jìn)入接口表示調(diào)用成功
3. 固定公網(wǎng)地址
由于以上使用cpolar所創(chuàng)建的隧道使用的是隨機(jī)公網(wǎng)地址,24小時(shí)內(nèi)會(huì)隨機(jī)變化,不利于長(zhǎng)期遠(yuǎn)程訪問(wèn)。因此我們可以為其配置二級(jí)子域名,該地址為固定地址,不會(huì)隨機(jī)變化
注意需要將cpolar套餐升級(jí)至基礎(chǔ)套餐或以上,且每個(gè)套餐對(duì)應(yīng)的帶寬不一樣?!綾polar.cn已備案】
3.1 保留一個(gè)二級(jí)子域名
登錄cpolar官網(wǎng),點(diǎn)擊左側(cè)的預(yù)留,選擇保留二級(jí)子域名,設(shè)置一個(gè)二級(jí)子域名名稱,點(diǎn)擊保留,保留成功后復(fù)制保留的二級(jí)子域名名稱
3.2 配置二級(jí)子域名
訪問(wèn)http://127.0.0.1:9200/,登錄cpolar web UI管理界面,點(diǎn)擊左側(cè)儀表盤(pán)的隧道管理——隧道列表,找到所要配置的8080隧道,點(diǎn)擊右側(cè)的編輯
修改隧道信息,將保留成功的二級(jí)子域名配置到隧道中
- 域名類型:選擇二級(jí)子域名
- Sub Domain:填寫(xiě)保留成功的二級(jí)子域名,本例為test01
點(diǎn)擊更新
更新完成后,打開(kāi)在線隧道列表,此時(shí)可以看到公網(wǎng)地址已經(jīng)發(fā)生變化,地址名稱也變成了保留過(guò)的二級(jí)子域名名稱,將其復(fù)制下來(lái)
3.3 測(cè)試使用固定公網(wǎng)地址
打開(kāi)postman,使用固定http地址進(jìn)行調(diào)用
同樣在服務(wù)端debug調(diào)試查看請(qǐng)求是否進(jìn)入接口,進(jìn)入接口表示成功
4. Cpolar監(jiān)聽(tīng)器
我們還可以使用cpolar監(jiān)聽(tīng)器(http://localhost:4040)查看接口請(qǐng)求日志,處理一個(gè)討厭的bug。甚至可以重播請(qǐng)求消息包,加速測(cè)試的請(qǐng)求,單擊重放(Replay)按鈕,重新發(fā)送該HTTP信令請(qǐng)求,而不是手動(dòng)重新觸發(fā)操作。下面介紹使用cpolar監(jiān)聽(tīng)器監(jiān)聽(tīng)請(qǐng)求。
4.1 開(kāi)啟偵聽(tīng)功能
選擇我們剛剛創(chuàng)建配置的http隧道,并點(diǎn)擊右側(cè)的編輯
打開(kāi)高級(jí)設(shè)置,開(kāi)啟偵聽(tīng)功能
4.2 請(qǐng)求偵聽(tīng)
在瀏覽器訪問(wèn)本地4040端口,http://localhost:4040
向服務(wù)端發(fā)送請(qǐng)求后,此處就會(huì)顯示相關(guān)的請(qǐng)求日志,可以看到請(qǐng)求的方式,請(qǐng)求的數(shù)據(jù),接口路徑,和返回狀態(tài)及結(jié)果,極大提高了調(diào)試效率。
以上就是SpringBoot實(shí)現(xiàn)HTTP服務(wù)監(jiān)聽(tīng)的代碼示例的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot實(shí)現(xiàn)HTTP服務(wù)監(jiān)聽(tīng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java中關(guān)于二叉樹(shù)的概念以及搜索二叉樹(shù)詳解
二叉樹(shù)是一種很有用的非線性結(jié)構(gòu),日常的開(kāi)發(fā)中常會(huì)用到,關(guān)于二叉樹(shù)的概念以及搜索二叉樹(shù)本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09SpringData @Query和@Modifying注解原理解析
這篇文章主要介紹了SpringData @Query和@Modifying注解原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08劍指Offer之Java算法習(xí)題精講數(shù)組與字符和等差數(shù)列
跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過(guò)之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化2022-03-03springboot利用redis、Redisson處理并發(fā)問(wèn)題的操作
這篇文章主要介紹了springboot利用redis、Redisson處理并發(fā)問(wèn)題的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06springboot使用@Slf4j進(jìn)行日志的記錄步驟詳解
這篇文章主要介紹了springboot使用@Slf4j進(jìn)行日志的記錄,使用@Slf4j的注解進(jìn)行日志記錄非常方便,本文給大家分享操作步驟,需要的朋友可以參考下2023-08-08關(guān)于SpringSecurity?Context?中獲取和更改當(dāng)前用戶信息的問(wèn)題
SpringSecurityContext在異步線程中無(wú)法獲取用戶信息,因其與請(qǐng)求線程綁定;此外,用戶信息更新后跳轉(zhuǎn)頁(yè)面時(shí),身份會(huì)被降級(jí)為匿名,導(dǎo)致信息無(wú)法及時(shí)同步,本文給大家介紹SpringSecurity?Context?中獲取和更改當(dāng)前用戶信息的問(wèn)題,感興趣的朋友一起看看吧2024-09-09Java從單體架構(gòu)升級(jí)到微服務(wù)要注意的一些問(wèn)題
這篇文章主要介紹了Java從單體架構(gòu)升級(jí)到微服務(wù)要注意的一些問(wèn)題,對(duì)架構(gòu)感興趣的同學(xué),可以參考下2021-04-04