kettle 调用post接口 出现非法字符 ,kettle如何调用post接口并解析

 

1.kettle post接口非法字符

此post接口在postman中是可以成功调用,但是在kettle中调用就会报错,具体报错信息请看下面

kettle 调用post接口 出现非法字符 ,kettle如何调用post接口并解析

kettle 调用post接口 出现非法字符 ,kettle如何调用post接口并解析

 

排查了很久报错原因是非法字符,最后查出是时间格式的问题,此接口的入参为

jsonArgs=start_time:2018-07-24 00:00:00;end_time:2018-07-26 00:00:00;account:xfzn01

参数不是json格式,每个参数也没有用双引号引起来

时间中间有空格,kettle自动解析为两个值,将时间的中间空格除掉就ok了,可以把入参改为json格式

kettle 调用post接口 出现非法字符 ,kettle如何调用post接口并解析时间改成这个样式就ok了

 

2.kettle 调用post接口

a.首先使用JavaScript代码 组件将接口的url和参数拼接好,此处我的时间是从前面获取过来的

kettle 调用post接口 出现非法字符 ,kettle如何调用post接口并解析

b.在使用REST Client组件调用接口

kettle 调用post接口 出现非法字符 ,kettle如何调用post接口并解析

c.调用成功后解析接口的值,此接口的返回值是json格式,就使用JSON input组件解析

下图为接口返回值

kettle 调用post接口 出现非法字符 ,kettle如何调用post接口并解析

json解析

kettle 调用post接口 出现非法字符 ,kettle如何调用post接口并解析

d.接口返回值比较多,但是我只想需要 efairyproject_name 等于某一个地方或者多个地方的,

我们可以使用switch/case 组件来操作

kettle 调用post接口 出现非法字符 ,kettle如何调用post接口并解析

不满足条件的执行空操作,满足条件的继续解析device_fire_data_list ,最后将需要的字段数据插入数据库中

 

下面附上完成的trans

kettle 调用post接口 出现非法字符 ,kettle如何调用post接口并解析