最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Kettle學(xué)習(xí)筆記(四):接口請求和Java代碼

2023-04-07 17:15 作者:月光神楊新羽  | 我要投稿

一、http請求方式

HTTP1.0定義了:GET、POST和HEAD方法。

HTTP1.1新增了:OPTIONS、PUT、DELETE、TRACE、CONNECT等方法。

雖然在HTTP1.1增加了PUT、DELETE等方法,但是一般已經(jīng)習(xí)慣使用GET和POST的開發(fā)人員,一般較少會使用新增的請求方法,新方法的增加讓請求更加規(guī)范,但是只使用GET和POST也可以滿足請求的所有需要(不然之前那么多年怎么用的)。

GET和POST的最大區(qū)別就是GET請求需要將參數(shù)拼在URL上,而POST請求則將參數(shù)放到BODY體中,比起GET的對外暴露POST相對安全。

以釘釘開放平臺的請求作為示例:


二、接口驗證方式

下面僅列舉幾種我在工作中常見的用戶身份驗證方式,并不涉及到里面詳細(xì)的技術(shù)拆解,簡單介紹下。

1)Token鑒權(quán)(JWT)

對使用Token鑒權(quán)技術(shù)的網(wǎng)站,在Kettle中一般需要發(fā)起兩次請求。

第一次,通過Key和Secret獲取accessToken。

第二次,將accessToken放到請求的Headers中,攜帶其他參數(shù)進行請求。

2) MD5加鹽

MD5屬于比較常見的加密算法,由于MD5算法屬于單向加密,需要暴露出相關(guān)的請求參數(shù),但是暴露相關(guān)請求參數(shù)會導(dǎo)致不安全,怎么解決這個問題呢?那就是加鹽。

通信雙方約定一個salt值,然后將其他參數(shù)和鹽值一起進行加密,這樣加密后的數(shù)據(jù)很難進行破解。這里的salt值,其實類似于對稱加密中的公鑰,只不過,收到請求的一方是通過公鑰解密,而MD5的salt值是雙方都通過salt值加密。

舉例如下:

key=harry&time=129187939&hash=BF04A55B30CFF562F7ADD9F054AB7FFB,被請求方通過明文key獲取當(dāng)前key的salt值,然后將相關(guān)參數(shù)加上salt值按約定方式加密,得出相同的hash值,就可以確定是對的人!

3) RSA非對稱加密

RSA是非對稱加密比較有代表性的一種。非對稱加密擁有一對密鑰:公鑰+私鑰。請求方通過公鑰進行加密,然后被請求方通過私鑰進行解密。非對稱加密不需要在請求時暴露參數(shù),對隱私數(shù)據(jù)有更好的保護作用,比如請求涉及到隱私信息的。

舉例如下:

{"id": "xxx","phone":"199xxx","idCard":"1100xxx","name":"張三","workName":"xx單位"}


三、Java代碼使用

Kettle中支持嵌入Java代碼。加入一個新的Java代碼,然后從左側(cè)拉入一個main方法,中間的部分是給我們寫業(yè)務(wù)邏輯用的。輸入輸出字段可以從Input fields和Output fields查看。其實這部分內(nèi)容主要是用來拼寫請求參數(shù)和加密參數(shù)用的。

需要引用什么包,在頂部import即可。聽說可以將外部包放到Kettle目錄下的/lib路徑中,然后再進行引用,我沒有進行嘗試。

四、示例

1)MD5加鹽接口訪問

第一步,通過【生成記錄】寫入URL。

第二步,通過【Java代碼】拼裝請求參數(shù)和MD5加密加鹽。

第三步,通過【REST client】發(fā)起請求。

第四步,通過【JSON input】拆分返回的JSON數(shù)據(jù)。

拆分完成后的數(shù)據(jù)無論寫入excel還是數(shù)據(jù)庫都可以。

2)Token鑒權(quán)接口訪問

因為上一步驟對各個組件進行了詳細(xì)說明,所以在這一步驟僅進行簡單說明。

第一步,通過【生成記錄】拼寫URL。

第二步,通過【REST client】發(fā)起請求,獲取包含Token的JSON字符串。

第三步,通過【JSON input】將JSON字符串中的Token拆分。

第四步,通過【Java代碼】拼寫第二次訪問URL和BODY。

第五步,通過【REST client】再次發(fā)起請求(將之前獲取的Token放入組件的Headers中),獲取包含內(nèi)容的JSON字符串。

第六步,通過【JSON input】將JSON字符串中的內(nèi)容進行拆分。

這樣就完成了Token鑒權(quán)的數(shù)據(jù)獲取,流程中的兩個字段拆分非必要,是我為了減少流中無用字段使用的。

基于以上,基本完成了Kettle對于接口訪問的流程,其實【Java代碼】中還有較多的內(nèi)容,只是文檔較少,不好研究。還有就是在實際業(yè)務(wù)中的分頁,定時獲取都沒有進行設(shè)計處理,后面有時間再進行研究。

Kettle學(xué)習(xí)筆記(四):接口請求和Java代碼的評論 (共 條)

分享到微博請遵守國家法律
江油市| 紫云| 板桥市| 罗甸县| 叶城县| 关岭| 德州市| 宁陵县| 平顶山市| 于都县| 阿巴嘎旗| 秀山| 鹤峰县| 鸡东县| 云龙县| 鄂州市| 静乐县| 伊宁市| 来凤县| 新龙县| 梅河口市| 砚山县| 泰州市| 稻城县| 盘山县| 夹江县| 和平区| 曲阜市| 九龙城区| 铜鼓县| 大方县| 勐海县| 交城县| 泰安市| 金门县| 辰溪县| 桑日县| 冷水江市| 彭阳县| 南京市| 博白县|