場景:小伙伴在使用kettle調用https接口過程中無法正常調用,程序出錯問題,今天演示下用自研插件輕松解決這個問題。
1、使用openssl 生成自簽名證書
openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365
2、使用python 提供https接口
1)啟動https服務,地址為https://127.0.0.1:443/ping
2)代碼如下:
from flask import Flaskapp = Flask(__name__)@app.route('/ping')
def hello_world():return 'Hello, Java小金剛! This is an HTTPS interface.'if __name__ == '__main__':# 啟用 HTTPS,指定證書和私鑰文件的路徑app.run(debug=True, host='0.0.0.0', port=443, ssl_context=('cert.pem', 'key.pem'))
3、將kettle-httpclient-plugin-1.0插件放到kettle的plugins目錄下面,重啟spoon。
4、設計流程
1)生成記錄步驟,驅動流程
2)Http客戶端Plus,采用http get方式調用http/或者https接口,本次演示調用https接口。
3)寫日志,打印https接口返回內容。
?4)Http客戶端Plus設置
輸入url?https://127.0.0.1:443/ping,直接調用接口報錯,錯誤信息如下
2025/07/31 22:06:36 - Http客戶端 Plus.0 - ERROR (version 9.3.0.0-428, build 9.3.0.0-428 from 2022-04-12 04.56.25 by buildguy) : 由于錯誤, 該步驟不能繼續.
2025/07/31 22:06:36 - Http客戶端 Plus.0 - 不能獲取 URL https://127.0.0.1:443/ping 的內容
2025/07/31 22:06:36 - Http客戶端 Plus.0 - sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
?勾選useSSL,繼續測試,https接口成功調用
?5、其他功能
本插件除了可以繞過https接口中的ssl校驗,還可以下載二進制流文件,重試等功能。
寫在最后
Http client plus插件已來,http post plus插件還會遠嗎?