当前位置: 首页 > news >正文

kettle插件-kettle http post plus插件,轻松解决https post接口无法调用文件流下载问题

场景:小伙伴在使用kettle调用https post接口过程中无法正常调用,程序出错问题,今天演示下用自研插件轻松解决这个问题。

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/api/data

0e1b0441-16db-4c9a-af91-54fe8465ffde

2)代码如下:

from flask import Flask, jsonify, request,send_fileapp = Flask(__name__)@app.route('/api/data', methods=['POST'])
def receive_data():# 使用 request.json 获取 POST 请求中的 JSON 数据data_json = request.jsonresponse_data = {'message': 'Data received successfully!','data': data_json}return jsonify(response_data)
if __name__ == '__main__':# 启用 HTTPS,指定证书和私钥文件的路径app.run(debug=True, host='0.0.0.0', port=443, ssl_context=('cert.pem', 'key.pem'))

3、将kettle-httppost-plugin-1.0插件放到kettle的plugins目录下面,重启spoon。

4、设计流程

1)生成记录步骤,驱动流程

2)Http Post Plus,采用httppost方式调用http/或者https接口,本次演示调用https接口。

3)写日志,打印https接口返回内容。

e85cea5d-66fa-4e6e-bdd8-227719fe48a4

 4)Http Post Plus设置

输入url https://127.0.0.1:443/ping,直接调用接口报错,错误信息如下

2025/08/04 21:18:39 - Http Post Plus.0 - ERROR (version 9.3.0.0-428, build 9.3.0.0-428 from 2022-04-12 04.56.25 by buildguy) : !HTTP.ErrorInStepRunning!
2025/08/04 21:18:39 - Http Post Plus.0 - 无法从[https://127.0.0.1:443/api/data]读取结果
2025/08/04 21:18:39 - Http Post Plus.0 - sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

9b9e5c29-1149-4e28-a56b-b4ed0acd9de3

勾选useSSL,继续测试,https接口成功调用,另外原始http post插件响应结果中有中文时会出现乱码,http post plus插件也解决了中文乱码问题。

f71bc911-36e8-43ce-a172-d6e1101a6821

 5、其他功能

本插件除了可以绕过https post接口中的ssl校验,还可以下载二进制流文件,重试等功能。

写在最后

Http client plus和http post plus插件可以完美解决调用调用https get和post接口问题以及文件流下载问题,你还遇到http的说明问题,欢迎评论区留言探讨。

image

http://www.dtcms.com/a/315888.html

相关文章:

  • python的高校考研交流系统
  • FastAPI快速入门P2:与SpringBoot比较
  • ESP-idf框架下的HTTP服务器\HTML 485温湿度采集并长传
  • windows如何查限制每个用户占用的显存大小
  • Node.js高并发下的内存泄漏排查与解决实录
  • 微信小程序的合规检测
  • (LeetCode 每日一题) 3477. 水果成篮 II (暴力)
  • Pytorch-06 如何开启模型训练(模型训练工作流梳理)
  • 几乎不会存在Store Buffer中的指令不提交缓存的情况~
  • Rust进阶-part3-生命周期
  • AI的第一次亲密接触——你的手机相册如何认出你的猫?
  • JavaWeb(苍穹外卖)--学习笔记17(Websocket)
  • 【qt5_study】2.使用Qt Designer构造UI界面(信号与槽)
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第二十四讲)
  • React18 严格模式下的双重渲染之谜
  • 【01】OpenCV C++实战篇——基于多项式插值的亚像素边缘定位算法
  • NLP自然语言处理 02 RNN及其变体
  • golang 1.24引入alias types的原因
  • Mac上pnpm的安装与使用
  • 《计算机“十万个为什么”》之 面向对象 vs 面向过程:编程世界的积木与流水线
  • VSCode中使用Qt
  • MySQL 如何优化慢查询
  • Apifox使用mock模仿后端返回数据
  • Java异常讲解
  • PowerShell 入门2: 使用帮助系统
  • 开源密码恢复实用程序 Hashcat 7.0.0 发布
  • 灰色优选模型及算法MATLAB代码
  • 2025年6月中科院2区-红杉优化算法Sequoia Optimization Algorithm-附Matlab免费代码
  • vscode 关闭自动更新
  • ELK是什么