日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

一次搞定:借助Hutool封裝代碼快速解決webservice調(diào)用煩惱

來源: 責編: 時間:2023-10-24 09:00:38 315觀看
導讀前言相信很多同行哪怕學了許多主流技術,但工作上依然免不了和傳統(tǒng)企業(yè)打交道,而這樣的企業(yè)往往還在用webservice做接口交互。本文是作者近兩年和醫(yī)療行業(yè)的廠家打交道研究出來的一點調(diào)用webservice接口的心得,代碼在生產(chǎn)

hPr28資訊網(wǎng)——每日最新資訊28at.com

前言

相信很多同行哪怕學了許多主流技術,但工作上依然免不了和傳統(tǒng)企業(yè)打交道,而這樣的企業(yè)往往還在用webservice做接口交互。hPr28資訊網(wǎng)——每日最新資訊28at.com

本文是作者近兩年和醫(yī)療行業(yè)的廠家打交道研究出來的一點調(diào)用webservice接口的心得,代碼在生產(chǎn)環(huán)境也用了挺久了,專門撈出來作為一期干貨分享給大家。hPr28資訊網(wǎng)——每日最新資訊28at.com

愿天下再無webservice!hPr28資訊網(wǎng)——每日最新資訊28at.com

正文

引入Hutool依賴就不說了,直接上硬菜。hPr28資訊網(wǎng)——每日最新資訊28at.com

1、選擇測試案例

因為公司內(nèi)部調(diào)用的廠家webservice不方便公開,所以我在網(wǎng)上選擇了一個免費的webservice接口作為案例。hPr28資訊網(wǎng)——每日最新資訊28at.com

地址: http://www.webxml.com.cn/WebServices/WeatherWebService.asmxhPr28資訊網(wǎng)——每日最新資訊28at.com

這里選擇第一個即可hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

調(diào)試提供方的webservice接口,首先要學會分析一下,基本上就是三原則。hPr28資訊網(wǎng)——每日最新資訊28at.com

方法名稱、命名空間、入?yún)⒚Q,如下圖紅框所示。hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

借助Hutool中的SoapClient來實現(xiàn)客戶端調(diào)用webservice的工具類。hPr28資訊網(wǎng)——每日最新資訊28at.com

首先,抽取命名空間和webservice地址,這里地址在調(diào)試階段可以寫死,后續(xù)再改為配置形式。hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

其次,定義調(diào)用客戶端方法,入?yún)⒎謩e是方法名、入?yún)⒚⑷雲(yún)⒅怠?span style="display:none">hPr28資訊網(wǎng)——每日最新資訊28at.com

這樣這個方法被調(diào)用時,就可以動態(tài)傳入webservice中不同的方法及參數(shù),達到公用的目的。hPr28資訊網(wǎng)——每日最新資訊28at.com

紅框部分就是Hutool提供的SoapClient創(chuàng)建客戶端hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

webservice在Hutool的工具類集合中屬于非核心維護的一類工具,所以內(nèi)部本身是有一些地方?jīng)]有優(yōu)化的。hPr28資訊網(wǎng)——每日最新資訊28at.com

比如上面截圖中的用法就是官網(wǎng)的說明,直接SoapClient.create()來創(chuàng)建。hPr28資訊網(wǎng)——每日最新資訊28at.com

我們點進去源碼看一下,發(fā)現(xiàn)每次都是new一個對象。hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

但因為封裝的比較深,我們還是寫個簡單的方法驗證一下是不是每次都新建了對象。hPr28資訊網(wǎng)——每日最新資訊28at.com

直接創(chuàng)建兩次對象,然后進行比較,看是否指向同一個引用,發(fā)現(xiàn)返回是false,說明確實是不同的對象。hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

考慮到生產(chǎn)環(huán)境下,存在訪問量突增的可能,如果每次創(chuàng)建一個對象存在隱患,這里我們使用單例模式優(yōu)化一下。hPr28資訊網(wǎng)——每日最新資訊28at.com

單例模式的寫法很多,我這里選擇Holder方式,也就是雙重檢查鎖進一步優(yōu)化之后的方式,在高并發(fā)場景下要更合適一點。hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

接下來,我們驗證下單例模式是否生效。hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

修改下之前創(chuàng)建客戶端的代碼,這樣每次請求時,只獲取一次客戶端就可以了。hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

官網(wǎng)沒有明確指出如何處理錯誤信息,但本身提供了相關的方法,我這邊通過不斷驗證之后,給出了最優(yōu)解。hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

調(diào)用一開始的webservice接口,看是否可以成功。hPr28資訊網(wǎng)——每日最新資訊28at.com

hPr28資訊網(wǎng)——每日最新資訊28at.com

最后,這里展示下我負責的項目在生產(chǎn)環(huán)境調(diào)用第三方廠家webservice接口的入?yún)⒑统鰠ⅲ瑯邮褂玫氖巧厦娣庋b的工具類。對方的入?yún)⒑统鰠⒍际荴ML格式,最終效果如下:

hPr28資訊網(wǎng)——每日最新資訊28at.com

總結

1、拿到一個webservice接口后,首先分析命名空間、方法名、入?yún)⒚謩e是什么;hPr28資訊網(wǎng)——每日最新資訊28at.com

2、使用Hutool提供的SoapClient工具類完成webservice的動態(tài)調(diào)用,同時配合單例模式進行優(yōu)化;hPr28資訊網(wǎng)——每日最新資訊28at.com

3、錯誤信息處理的優(yōu)化。hPr28資訊網(wǎng)——每日最新資訊28at.com

4、最后有一點要注意,Hutool的webservice工具類還未支持Java17,只兼容了Java8,因此不建議高版本使用,但目前大多數(shù)企業(yè)依然是Java8為主流版本,后續(xù)Hutool肯定也會根據(jù)版本來升級的。hPr28資訊網(wǎng)——每日最新資訊28at.com

想查看完整工具類的也可以自己去下載,然后自己測一測效果。hPr28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-14717-0.html一次搞定:借助Hutool封裝代碼快速解決webservice調(diào)用煩惱

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 五個不能錯過的VS Code插件

下一篇: 揭秘 Go 中的 new() 和 make() 函數(shù)

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 桃江县| 乾安县| 南江县| 越西县| 军事| 商河县| 三明市| 奈曼旗| 秦皇岛市| 吉水县| 文水县| 华蓥市| 福清市| 平昌县| 江川县| 常熟市| 绥德县| 五华县| 武威市| 济南市| 清流县| 威海市| 沙坪坝区| 武邑县| 合水县| 唐海县| 平遥县| 松阳县| 观塘区| 西青区| 吕梁市| 榕江县| 洱源县| 安远县| 宁陵县| 临漳县| 吉首市| 依安县| 玛纳斯县| 丹江口市| 泗洪县|