kettle组件HTTP Post,HTTP Client和REST Client的区别及使用方法

最近项目要调用第三方接口来获取json数据,并解析数据入库。这里用到了kettle作为数据抽取工具。Kettle 除了常规的数据处理之外,还可以模拟发送HTTP client/post  ,REST client。

这里顺便讲一下这三个组件的区别之处,省的下次绕迷糊。 

1.HTTP Post组件

”post“顾名思义应该就是http请求方式为post,这里查看源码也得到证实,是引入的org.apache.commons.httpclient.methods里面的方法。

try {
      if ( isDetailed() ) {
        logDetailed( BaseMessages.getString( PKG, "HTTPPOST.Log.ConnectingToURL", data.realUrl ) );
      }

      // Prepare HTTP POST
      //
      HttpClient httpPostClient = SlaveConnectionManager.getInstance().createHttpClient();
      PostMethod post = new PostMethod( data.realUrl );
      // post.setFollowRedirects(false);

下面我用代码模拟了一个get方式的请求,在kettle中使用该组件调用该请求,未获取到结果集。返回结果中提示“系统发生异常”,可想而知,该组件并不支持get方式的请求。(这里顺便提示一下,由于HTTP Client和Post都是查询菜单里的组件,并不是输入流组件,所以使用该组件前面必须要配合输入流的组件使用,否则执行的时候,由于你并没有输入流传入,所以程序自动判断你的转换没有源数据流入,自动结束运行,程序会自动退出,不会执行后面的流程。所以,要切记,使用该组件之前一定要有输入组件,可以将url或者请求参数作为输入流)。

@RequestMapping(value = "/infoTrans", method = GET, produces = "application/json")
    public Object infoTrans(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // TODO Auto-generated method stub
        String attribute = (String)request.getAttribute("p2");
        result = "{\r\n" +
                "\"BasicResponse\": {\r\n" +
                "\"succeeded\": 1\r\n" +
                "},\r\n" +
                "\"RTDataSets\": [\r\n" +
                "{\r\n" +
                "\"kksCode\": \"EB002HP4MKA01MK001BN01J1CB001BB02\",\r\n" +
                "\"RTDataValues\": [\r\n" +
                "{\r\n" +
                "\"Value\": 5.5944,\r\n" +
                "\"Time\": 1446184512000\r\n" +
                "},\r\n" +
                "{\r\n" +               
                "}\r\n" +
                "]\r\n" +
                "}";      
        return result;
    }

所以。使用该组件的时候,一定要知道你请求的接口请求方式是什么类型的。接下来,那你一定会问,如果HTTP Post是请求Post方式的,那Get方式的怎么请求呢,没错,就是Http Client组件了,不知道官方为什么把组件名命名为这样,而不是叫做HTTP Get,可能命名不好听吧....额,反正我是圆不下去了,管他呢,everything 有毒....,然后我用Client组件请求该接口,ok,一切顺利。

 接下来,讲一讲剩下的那两个组件,REST Client和Json数据解析...这里由于笔没水了,想看更多内容,请前往此处..

http://sharehoo.cn/topic/detail/438

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值