栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java访问api接口

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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")这个括号里面的必须跟上面的字段一样不然获取不到

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号