想真正学习或者提升自己的ETL领域知识的朋友欢迎进群,一起学习,共同进步。若二维码失效,公众号后台加我微信入群,备注kettle。
1、今天群里有位朋友问我有没有关于调用http接口的kettle 示例,我下意识的去翻我的公众号推文,愣是没找到。果断开始撸。
2、本次演示流程通过调用接口【网易云音乐随机歌曲】,然后解析返回的数据,接口信息如下图所示:
3、本次演示流程通过调用接口【网易云音乐随机歌曲】,然后解析返回的数据,流程设计信息如下图所示:
1)步骤【生产记录】驱动测试流程。
2)步骤【HTTP post】发起请求。
3)步骤【解析result】解析第一层json数据。
4)步骤【result日志】记录解析result字段信息,方便调试。
5)步骤【解析data】解析第二层json数据。
4)步骤【data日志】记录解析data字段信息,方便调试。
4、步骤【HTTP post】步骤配置-General,如下图所示:
1)URL:调用地址,可以直接写死或者通过变量获取。
2)Accept URL from field?:如果选中,则必须指定从哪个字段检索URL。
3) URL field name:如果前面的选项被选中,这里就是您指定URL字段的地方。
4)Encoding:文件访问的编码标准。
5)Request entity field:字段的名称将包含POST请求。启用时,“Post a file”选项将检索该字段中命名的文件,并将该文件的内容发布。
6)Post a file:如果在“请求实体字段”中定义了文件,则如果选中此选项,其内容将被发布。目前,“请求实体字段”必须填写才能使“发布文件”正常工作。选择“发布文件”并在“主体参数”下指定字段,但没有为“请求实体字段”(文件名的位置)选择值,将会静默失败。
7)Connection timeout:设置创建连接超时时间(默认为10000毫秒)。
8)Socket timeout:设置读取socket数据超时时间(默认为10000毫秒)。
9)Connection close wait time:定义连接关闭后的等待时间(单位为毫秒),默认值为-1,表示使用操作系统的默认等待时间(通常为2分钟)。
背景信息:每行打开一个连接,并将其保持在所谓的TIME-WAIT状态一段特定的时间。大量(可能是成千上万个)处于TIME-WAIT状态的连接会引入显着的内存开销。此选项可以通过减少关闭连接保持在TIME-WAIT状态的时间来减少这种内存开销。
10)Result field name:返回结果字段名称,可自定义,这里设置为result。
11)HTTP status code field name:响应http状态码字段名称,可自定义。
12)Response time (milliseconds) field name:响应时间字段名称,可自定义。
13)HTTP login:如果此表单需要身份验证,则此字段应包含用户名。
14)HTTP password:如果此表单需要身份验证,则此字段应包含与用户名对应的密码。
15)Proxy host:代理服务器的主机名或 IP 地址,如果你使用代理的话。
16)Proxy port:代理服务器的主机端口,如果你使用代理的话。
5、步骤【HTTP post】步骤配置-Fields,Fields 标签定义了 HTTP 请求头和请求体的参数,如下图所示:
1)Body (Header) Parameters
如果你在“常规”标签中填写了 URL 和其他必要的细节,你可以使用“获取值”按钮来预填充这里的字段。请求体参数用于 POST 和 PUT 操作。
2)Query Parameters
如果你在“常规”标签中填写了 URL 和其他必要的细节,你可以使用“获取值”按钮来预填充这里的字段。查询参数在 URL 中指定,可以在任何 HTTP 方法中使用。
6、如下是使用JSON输入分别解析reult、data字段的主要配置,这里不做过多讲述,不熟悉JSON输入的可以查看之前的文章。