kettle从入门到精通 第七十一课 ETL之kettle 再谈http post,轻松掌握body中传递json参数

kettle,etl,http,post,body,json · 浏览次数 : 0

小编点评

在Kettle中,要通过HTTP POST步骤发送HTTP请求并传递body参数,请按照以下步骤操作: 1. 手动创建一个Python接口(如上图所示),使用Flask框架实现。 2. 在创建Flask应用后,定义一个路由`/api/data`,该路由仅允许POST请求。 3. 在路由处理函数`receive_data`中,解析JSON格式的请求体,并在此处编写处理逻辑(如存储数据到数据库)。 4. 在模拟记录步骤中,添加body参数和Content-type参数,确保Content-type设置为`application/json`。 5. 在HTTP POST参数设置中,填写URL、Request entity field(即body参数),其他参数保持默认值。 6. 确保Content-type设置正确,以便Kettle能正确解析请求体。 7. 如果遇到HTTP接口调用异常,可以使用try-except语句捕获异常,并在捕获到异常后关闭接口服务,重新运行转换。 通过以上步骤,您应该能够在Kettle中成功发送HTTP POST请求并传递body参数。

正文

场景:

kettle中http post步骤如何发送http请求且传递body参数?

 解决方案:

http post步骤中直接设置Request entity field字段即可。

1、手边没有现成的post接口,索性用python搭建一个简单的接口,关键代码如下(安装python环境略):

from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/api/data', methods=['POST'])
def receive_data():
    data = request.json  # 获取 POST 请求中的 JSON 数据
    # 在这里可以编写具体的处理逻辑,例如存储数据到数据库等
    return jsonify({'message': 'Data received successfully!', 'data': data})

if __name__ == '__main__':
    app.run(debug=True)

 

2、生成记录步骤模拟body参数和head中的Content-type参数,这里的Content-type为application/json,如下图所示:

这里的body名称可以自定义,不是只能使用body关键字哦。 

3、http post参数设置,这了填写URL、Request entity field,其他默认。点击运行果不其然没有成功,日志很清楚可以很快定位错误,如下图所示:

1)从日志可以很清楚的看到接口http://127.0.0.1:5000/api/data的Content-type设置不对。

2)以行级日志模式进行运行,可以看到默认的Content-type为text/xml; UTF-8,如下图所示:

 4、定位问题之后,我们把Content-type设置为Application/json,进行再次验证,接口调用成功。

 5、如果http接口调用异常如何捕获异常呢?操作也很简单从http post 拉一条线出来进行错误捕获处理,我们把接口服务关掉,然后重新运行转换,接口异常被正确捕获,如下图所示:

 

 

 

与kettle从入门到精通 第七十一课 ETL之kettle 再谈http post,轻松掌握body中传递json参数相似的内容:

kettle从入门到精通 第七十一课 ETL之kettle 再谈http post,轻松掌握body中传递json参数

场景: kettle中http post步骤如何发送http请求且传递body参数? 解决方案: http post步骤中直接设置Request entity field字段即可。 1、手边没有现成的post接口,索性用python搭建一个简单的接口,关键代码如下(安装python环境略): fro

kettle从入门到精通 第七十课 ETL之kettle kettle数据校验,脏数据清洗轻松拿捏

场景:输入在指定的错误(错误应涵盖数据类型不匹配的情况)行数内,trans不报错,但通过错误处理步骤捕捉,并记入文件,整个数据管线正常完成直至处理完最后一个输入行。 解决方案:使用步骤【数据检验】进行处理。这个步骤和常规的业务系统对接三方接口一个逻辑,将符合规则的数据放行,不符合的记录。 数据准备(

kettle从入门到精通 第六十九课 ETL之kettle kettle cdc mysql,轻松实现实时增量同步

1、之前kettle cdc mysql的时候使用的方案是canal+kafka+kettle,今天我们一起学习下使用kettle的插件Debezium直接cdc mysql。 注:CDC (Change Data Capture) 是一种技术,用于捕获和同步数据库中的更改。 1)Debezium步

kettle从入门到精通 第六十六课 ETL之kettle kettle阻塞教程,轻松获取最后一行数据,so easy

场景:ETL沟通交流群内有小伙伴反馈,如何在同步一批数据完成之后记录下同步结果呢?或者是调用后续步骤、存储过程、三方接口等。 解决:使用步骤Blocking step进行阻塞处理即可。 1、下面的demo演示从表t1同步数据至表t2(t1表中有三条数据,t2为空表,两个表表结构相同),然后数据同步完

kettle从入门到精通 第六十七课 ETL之kettle 再谈kettle阻塞,阻塞多个分支的多个步骤

场景:ETL沟通交流群内有小伙伴反馈,如何多个分支处理完毕之后记录下同步结果呢?或者是调用后续步骤、存储过程、三方接口等。 解决:使用步骤Blocking step进行阻塞处理即可。 1、 如下流程图中利用Blocking step步骤同时阻塞【模拟表输出1】和【模拟表输出2】两个步骤,只有当两个步

使用Kettle定时从数据库A刷新数据到数据库B

# 一、需求背景 由于项目场景原因,需要将A库(MySQL)中的表a、表b、表c中的数据``定时T+1`` ``增量``的同步到B库(MySQL)。这里说明一下,不是数据库的主从备份,就是普通的数据同步。经过技术调研,发现Kettle挺合适的,原因如下: 1. Kettle (数据抽取、清洗、转换、

工作疑难问题解决4例

记录一下工作上疑难问题解决: 一,方便的页面监控 前几天早上,负责的kettle抽取数据表的任务又报错了,早上看手机有4个未接报警电话,一看是人员表,原来昨天报表系统有个大的查询一直未查询完成,导致truncate这个人员表,无法活动meta的锁,后续执行抽取和计算的都报错。为解决以前这个很偶发的大