HttpClient远程调用另一个项目的接口查询数据

比如讲,现在有一个B项目,它有一个接口查询的是学生信息,然后A项目想要访问B项目的这个接口并查询学生信息,使用HttpClient可以实现,了解了一下WebService,好像它更适合跨项目远程调用接口,不过不太会用,这里就使用HttpClient实现。

首先要加入HttpClient的jar
然后写方法

 /**
     * 远程调用接口测试
     */
    @RequestMapping("/jsonTest")
    @ResponseBody
    public JSONObject doHttpGet(){
        // 需要访问的接口路径
        String url="https://jsonview.com/example.json";
        // 配置请求信息(请求时间)
        RequestConfig rc = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(5000).build();
        // 获取使用DefaultHttpClient对象
        CloseableHttpClient httpclient = HttpClients.createDefault();
        // 返回结果
        String result = null;
        if(url!=null){
            try {
                // 创建HttpGet对象,将URL通过构造方法传入HttpGet对象
                HttpGet httpGet=new HttpGet(url);
                // 将配置好请求信息附加到http请求中
                httpGet.setConfig(rc);
                // 执行DefaultHttpClient对象的execute方法发送GET请求,通过CloseableHttpResponse接口的实例,可以获取服务器返回的信息
                CloseableHttpResponse response = httpclient.execute(httpGet);
                try {
                    // 得到返回对象
                    HttpEntity entity = response.getEntity();
                    if(entity!=null){
                        // 获取返回结果
                        result = EntityUtils.toString(entity);

                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }finally {
                    // 关闭到客户端的连接
                    response.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    // 关闭http请求
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        //将得到的字符串转换成json对象(请求的本来就是把json格式数据以字符串的格式输出了)
        JSONObject jsonObject= JSON.parseObject(result);
        //返回json格式
        return jsonObject;
    }

就可以拿到数据了,这里只是测试数据。
在这里插入图片描述

posted @ 2020-03-08 17:18  你樊不樊  阅读(348)  评论(0编辑  收藏  举报