kettle—http 请求
由于业务需要,我们需要在数据处理的过程需要获取外部数据,或者是通知外部的系统
- 根据当前的数据,发起请求获取外部数据
- 根据当前的数据,通知外部系统进行数据处理,也就是做交互
GET 请求
下面是我们一个常见的发起GET 请求的模式
输入数据
定义的数据常量就是我们做http 请求的时候需要的一些参数,例如这里就是我们请求的地址和请求的关键词,正常情况下这些参数应该是从我们的数据中来,也就是表中例如表输入组件,但是这里为了方便我们直接使用常量定义组件
这里我们的url 就是百度,搜索关键词就是人大
发起请求
这里我们发起请求用的是HTTP client
组件,这里的URL 可以写死,也可以从字段中获取,这里我们就选择从上一步骤中的输出结果中获取,也就是从常量定义组件中的url
字段获取,输出保存在result字段
接下来我们还有定义一下请求的参数字段,其实看到这里我们是完全可以将请求的参数字段和url 定义在一起,或者是通过转换组合在一起的,但是这里为了演示的完整性,我们还是去定义一下请求的参数
这里可以定于请求参数和Headers
这里我们重点关注参数,这里的名称就是我们上一步骤的字段这里就是keyword
字段,命名参数就是我们发起请求的时候的参数名称,也就是说我们把keyword
字段的值当作wd
参数的值传递给请求
运行一下看日志就知道了,请求的url 是https://www.baidu.com/s?wd=%E4%BA%BA%E5%A4%A7
23/03/23 10:01:41 - 自定义常量数据.0 - 完成处理 (I=0, O=0, R=0, W=1, U=0, E=0)
2023/03/23 10:01:41 - Http - 转换已经分配了 3 线程 和 2 列组.
2023/03/23 10:01:41 - HTTP client.0 - 连接到 : [https://www.baidu.com/s?wd=%E4%BA%BA%E5%A4%A7]
2023/03/23 10:01:41 - HTTP client.0 - Response time (milliseconds): [154] for [https://www.baidu.com/s?wd=%E4%BA%BA%E5%A4%A7]
2023/03/23 10:01:41 - HTTP client.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
2023/03/23 10:01:41 - 输出结果.0 - 完成处理 (I=0, O=2, R=1, W=1, U=0, E=0)
2023/03/23 10:01:41 - Spoon - 转换完成!!
这里我们把wd 改成wds 再试一下
看一下运行日志,请求的url 是https://www.baidu.com/s?wds=%E4%BA%BA%E5%A4%A7
2023/03/23 10:03:13 - 自定义常量数据.0 - 完成处理 (I=0, O=0, R=0, W=1, U=0, E=0)
2023/03/23 10:03:13 - 输出结果.0 - 开始运行...
2023/03/23 10:03:13 - HTTP client.0 - 连接到 : [https://www.baidu.com/s?wds=%E4%BA%BA%E5%A4%A7]
2023/03/23 10:03:13 - Http - 转换已经分配了 3 线程 和 2 列组.
2023/03/23 10:03:14 - HTTP client.0 - Response time (milliseconds): [433] for [https://www.baidu.com/s?wds=%E4%BA%BA%E5%A4%A7]
2023/03/23 10:03:14 - HTTP client.0 - 完成处理 (I=0, O=0, R=1, W=1, U=0, E=0)
2023/03/23 10:03:14 - 输出结果.0 - 完成处理 (I=0, O=2, R=1, W=1, U=0, E=0)
2023/03/23 10:03:14 - Spoon - 转换完成!!
保存结果数据
我们最后一个组件就是为了保存请求的结果
POST 请求
post 请求和get 请求差不多,只不过我们需要引入的组件不一样,我们需要引入HTTP Post
组件
这个组件相比HTTP client
功能更加强大一些,但是大致也差不多。