java访问api接口

最近有个需求是从别人的接口拿数据然后存入数据库,话不多说直接上代码。

首先拿到别人的接口文档,看访问形式然后在postman上尝试访问能不能获取。

能获取后就在后端代码中实现

 

 public String getJob(){
        String s2 = "你的token";
        String json = "{\"status\":1,\"startTime\":\"2021-03-11T16:51:24\",\"endTime\":\"2120-02-16T17:51:24\"}";
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost post = new HttpPost("访问的接口地址");
        StringEntity postingString = null;// json传递
        try {
            postingString = new StringEntity(json);
            post.setEntity(postingString);
            post.setHeader("Content-type", "application/json");
            post.setHeader("Authorization", s2);
            HttpResponse response = httpClient.execute(post);
            String content = EntityUtils.toString(response.getEntity());
            System.out.println(content);
            result = content;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

 然后的话就是如何把他放入数据库了,因为这样拿到的是一个json字符串,要进行解析才能存入,

我是这样进行的,可能不是最优的方法。

 JobExample example = new JobExample();
        jobMapper.deleteByExample(example);
        //这个json就是上面获取的那个json字符串
        String json = getJob();
        //解析到最上层
        JSONObject object = JSONObject.parseObject(json);
        //解析到data层
        JSONObject data = JSONObject.parseObject(JSON.toJSONString(object.get("data")));
        //解析到items层
        JSONArray items = JSONArray.parseArray(JSON.toJSONString(data.get("items")));
        //然后就是遍历进数据库了
        for (Object list : items) {
            Job vo = new Job();
            JSONObject item = JSON.parseObject(JSON.toJSONString(list));
            if (item.size()!=0) {
                //这是如果值是字符串型是这样解析获取                 
                vo.setJobAdName(JSON.toJSONString(item.get("jobAdName")).replaceAll("\"", ""));
                vo.setJobTitle(JSON.toJSONString(item.get("jobTitle")).replaceAll("\"", ""));
                vo.setHeadCount(Integer.parseInt(String.valueOf(item.get("headCount")).replaceAll("\"", "")));
                vo.setJobType(JSON.toJSONString(item.get("jobType")).replaceAll("\"", ""));
            //这是整型的获取方式  
              vo.setKind(Integer.parseInt(String.valueOf(item.get("kind")).replaceAll("\"", "")));
}

为啥要解析多层是因为获取的数据是这样的

 获取值的时候item.get("jobAdId")这个括号里面的必须跟上面的字段一样不然获取不到

分享就到这里了,欢迎大家评论点评。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值