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)目,編寫一個(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è)儀表盤的隧道管理——創(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è)儀表盤的隧道管理——隧道列表,找到所要配置的8080隧道,點(diǎn)擊右側(cè)的編輯

修改隧道信息,將保留成功的二級(jí)子域名配置到隧道中
- 域名類型:選擇二級(jí)子域名
- Sub Domain:填寫保留成功的二級(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使用jdbc操作數(shù)據(jù)庫(kù)示例分享
這篇文章主要介紹了java使用jdbc操作數(shù)據(jù)庫(kù)示例,需要的朋友可以參考下2014-03-03
Java countDownLatch如何實(shí)現(xiàn)多線程任務(wù)阻塞等待
這篇文章主要介紹了Java countDownLatch如何實(shí)現(xiàn)多線程任務(wù)阻塞等待,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
MyBatis-Flex實(shí)現(xiàn)多表聯(lián)查(自動(dòng)映射)
我們可以輕松的使用 Mybaits-Flex 鏈接任何數(shù)據(jù)庫(kù),本文主要介紹了MyBatis-Flex實(shí)現(xiàn)多表聯(lián)查(自動(dòng)映射),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
springboot+gradle 構(gòu)建多模塊項(xiàng)目的步驟
這篇文章主要介紹了springboot+gradle 構(gòu)建多模塊項(xiàng)目的步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Spring FactoriesLoader機(jī)制實(shí)例詳解
這篇文章主要介紹了Spring FactoriesLoader機(jī)制實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Java?Optional避免空指針異常的實(shí)現(xiàn)
空指針異常一直是困擾開(kāi)發(fā)者的常見(jiàn)問(wèn)題之一,本文主要介紹了Java?Optional避免空指針異常的實(shí)現(xiàn),幫助開(kāi)發(fā)者編寫更健壯、可讀性更高的代碼,減少因空值處理不當(dāng)而引發(fā)的錯(cuò)誤,感興趣的可以了解一下2025-04-04
Spring MVC學(xué)習(xí)教程之RequestMappingHandlerAdapter詳解
這篇文章主要給大家介紹了關(guān)于Spring MVC學(xué)習(xí)教程之RequestMappingHandlerAdapter的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-11-11
Java實(shí)現(xiàn)自定義枚舉值校驗(yàn)器的示例代碼
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)自定義枚舉值校驗(yàn)器的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2023-02-02
SpringBoot靜態(tài)資源CSS等修改后再運(yùn)行無(wú)效的解決
這篇文章主要介紹了SpringBoot靜態(tài)資源CSS等修改后再運(yùn)行無(wú)效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12

