kettle用Rest Client发送http请求
kettle用add/join xml组装复杂的xml报文
kettle配置及性能调优
需求:请求一个服务接口,请求体是一段 json,服务接口响应数据,数据也是 json 形式。这里用 kettle 的组件Rest Client来发起请求,并解析响应体的 json 字段。
案例如下:
![](https://img-blog.csdnimg.cn/img_convert/51a3d903e019bf1ce6953176b804065e.png)
根据学生id发送put请求更新学生信息。
kettle流程配置参考如下:
![](https://img-blog.csdnimg.cn/img_convert/b3e4e0348c83f45458ff6c1faf98b184.png)
步骤一:组装JSON格式数据
![](https://img-blog.csdnimg.cn/img_convert/9ff1372c25ba7a9885b24cd6eb35b3b1.png)
核心组件-JSON输出插件介绍:
![](https://img-blog.csdnimg.cn/img_convert/bc106cc7fbcbec4a747d9b59121dfc56.png)
![](https://img-blog.csdnimg.cn/img_convert/1d35e0021504e5965c02ae58b2867bee.png)
使用JSON Output控件,并且把要转成JSON并发送出去的字段和元素名称的映射关系对应好。
注意:兼容模式选中以后的JSON效果:(不推荐选中)
{
"data": [{"studentId": "6629536"},
{"addr": "000111号222"},
{ "age": 240},
{"phone": "1366666660"},
{"studentName": "李毅222"}]
}
取消选中以后输出的JSON结果:
{
"data": [{
"studentId": "6629536",
"phone": "1366666660",
"studentName": "李毅222",
"addr": "000111号222",
"age": 240
}]
}
步骤二:利用JavaScript去掉外层data
{
"studentId": "6629536",
"phone": "1366666660",
"studentName": "李毅222",
"addr": "000111号222",
"age": 240
}
![](https://img-blog.csdnimg.cn/img_convert/ca35eb1833ee260008e91ef72a85db4a.png)
步骤三:发送restClient请求
![](https://img-blog.csdnimg.cn/img_convert/353d781992796057d75b615b168dbda9.png)
![](https://img-blog.csdnimg.cn/img_convert/aac0d507d1c2fae4d8845fd284c4309b.png)
步骤四:获取请求结果,做对应处理
![](https://img-blog.csdnimg.cn/img_convert/30ac0c8ffa61eb22b231701c2f610065.png)
![](https://img-blog.csdnimg.cn/img_convert/8ce65a59b1117555606c212c3afe42e8.png)
备注:根据返回成功状态200,进行下一步处理,如果不是200,也即是错误的响应,就可以做异常处理,或输出到表记录下来,便于错误记录和分析。
延伸:其实kettle还有两个和Rest Client差不多的组件,http post 和 http Client 这两个都可以利用Rest Client来替代。
更多优秀文章,请扫码关注个人微信公众号或搜索“程序猿小杨”添加。