昨天接到一个任务,使用公司的ESB,调用别人的接口,把得到的数据存储到mysql数据库当中,这里简单记录解决思路,方便以后查看。
1.拿到一个网站的地址,使用火狐浏览器的firebug工具,查看其传递的参数、访问的接口以及获得的json格式数据。
1 传递参数 2 time : [2016-05-03T08:00:00,2016-05-04T14:31:00]
1 请求地址 2 http://www.qzsdj.gov.cn//xq/water?time=[2016-05-02T08:00:00,2016-05-04T14:31:00]
1 json信息 2 3 *id "QZST004" //测站编号 4 time "2016-05-04T14:35:00" //查询最后定义时间时间 5 val 398.13 //最新水位 6 water_potential "6" //水势(涨、平、落) 7 capacity 3174.24 //库容(百万m³) 8 *name "东固" //测站站名 9 *lng 118.31 //x坐标 10 *lat 25.7577 //y坐标 11 *type "RR" 12 *type_name "水库水文站" 13 *address "泉州市德化县水口镇" //所在地址 14 *area_id "350526" //身份证前缀 15 *area_name "德化县" //所在地区 16 flood_val 409 //汛限/警戒 17 ensure_val 410 //正常/保证 18 is_over false 19 *river_name "涌溪" //河流名称 20 *water_system "闽江中下游" 21 town_code "350526106" //行政编码 22 town_name "水口镇" //乡镇名称 23 24 25 *为一定不为null
2. 使用Java服务生成所需要的参数
1 // 设置参数time的值 2 long curtime = System.currentTimeMillis(); 3 Date date = new Date(curtime); 4 DateFormat df = new SimpleDateFormat("yyyy-MM-dd\'T\'HH:mm:ss");//自定义时间格式 5 String a = df.format(date); 6 String time = "[2016-05-02T08:00:00," + a + "]"; 7 List<Map<String, String>> list = new ArrayList<Map<String, String>>(); 8 Map<String, String> map = new HashMap<String, String>(); 9 map.put("time", time); 10 list.add(map); 11 // 节点输出消息 12 Message outMessage = new DefaultMessage(); 13 // 节点输出消息数据 14 outMessage.setBody(list); 15 // 消息载体设置输出消息 16 exchange.setOutMessage(outMessage);
1 传递参数 2 time : [2016-05-03T08:00:00,2016-05-04T14:31:00]