zoukankan      html  css  js  c++  java
  • httpClient调用接口的时候,解析返回报文内容

    比如我httpclient调用的接口返回的格式是这样的:

    一:data里是个对象

    {
        "code": 200,
        "message": "执行成功",
        "data": {
            "userId": 1,
            "userName": "Jamie",
            "roles": "admin",
            "realName": "测试人员",
            "tel": "13651046002",
            "email": "12345@qq.com",
            "enabled": true
        }
    }
    

    1.添加pom依赖

    <!--集成lombok-->
    <dependency>
         <groupId>org.projectlombok</groupId>
         <artifactId>lombok</artifactId>
         <optional>true</optional>
    </dependency>
    
    <!-- 集成json-->
    <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
         <version>1.2.58</version>
    </dependency>

    2.定义一个返回报文实体

    /**
     * @author: sujing
     * @version: 1.0.0
     * @ClassName: Return.java
     * @date: 2019/10/11 16:24
     * 返回报文封装
     */
    @Data
    public class Return<T> {
        String code;
        String message;
        T data;
    
        public Return() {
        }
    
        public Return(String code, String message) {
            this.code = code;
            this.message = message;
        }
    
        public Return(String code, String message, T data) {
            this.code = code;
            this.message = message;
            this.data = data;
        }
    }
    

    3.解析httpclient返回的参数

    //httpClient调用接口,返回String字符串
    String httpClientReturn = HttpClientUtil.get("http://xxxxx:9099/jwtauthsvr/api/getUserInfoByName", request.getHeader("Authorization"));
    
    //转成JsonObject
    JSONObject UserInfoReturn = JSON.parseObject(httpClientReturn);
    
    //转成自定义Return报文对象
    Return returnMsg = JSON.toJavaObject(UserInfoReturn, Return.class);
    
    //获取报文里data参数
    String JSONData = JSON.toJSONString(returnMsg.getData());
    
    //转成UserInfo对象
    UserInfo userInfo = JSON.parseObject(JSONData, UserInfo.class);

    二:data里是个集合

    {
        "code": 200,
        "message": "success",
        "data": {
            "total": 16,
            "list": [
                {
                    "userId": 1,
                    "userName": "Jamie",
                    "roles": "admin",
                    "realName": "测试人员",
                    "tel": "13651046002",
                    "email": "12345@qq.com",
                    "idCard": "1111111111",
                    "enabled": true,
                    "relType": 0,
                    "relId": 111098,
                    "password": "xxx",
                    "registrationTime": "2019-08-04 20:35:44",
                    "updateTime": "2019-08-04 20:35:44"
                },
                {
                    "userId": 2,
                    "userName": "Bruce",
                    "roles": "admin",
                    "realName": "测试人员2",
                    "tel": "13651046888",
                    "email": "wwee@qq.com",
                    "idCard": "370214199555555555",
                    "enabled": true,
                    "relType": 0,
                    "relId": 111099,
                    "password": "xxx",
                    "registrationTime": "2019-08-04 20:50:15",
                    "updateTime": "2019-08-04 20:50:15"
                }
            ],
            "pageNum": 1,
            "pageSize": 25,
            "size": 16,
            "startRow": 1,
            "endRow": 16,
            "pages": 1,
            "prePage": 0,
            "nextPage": 0,
            "isFirstPage": true,
            "isLastPage": true,
            "hasPreviousPage": false,
            "hasNextPage": false,
            "navigatePages": 8,
            "navigatepageNums": [
                1
            ],
            "navigateFirstPage": 1,
            "navigateLastPage": 1,
            "firstPage": 1,
            "lastPage": 1
        }
    }
    

    1.解析httpclient返回的参数

    //httpClient调用接口,返回String字符串
    String httpClientReturn = HttpClientUtil.get("http://xxxxx:9099/jwtauthsvr/api/getUserInfoByName", request.getHeader("Authorization"));
    //转成JsonObject JSONObject UserInfoReturn = JSON.parseObject(httpClientReturn); //获取返回报文格式 Return returnMsg = JSON.toJavaObject(UserInfoReturn, Return.class); //获取报文里data参数 String JSONData = JSON.toJSONString(returnMsg.getData()); //获取data里的list List<UserInfo> userInfoList = JSON.parseObject(JSONData, new TypeReference<List<UserInfo>>() {});
  • 相关阅读:
    浏览器阻止window.open的解决方案
    汇总前端最最常用的JS代码片段
    检测是否是微信浏览器
    添加标签
    如何去掉textarea右下角的灰色角标?
    移动WEB前端开发资源整合
    图片文字水平居中(移动端)
    文本形式访客计数器
    如何处理加括号的四则混合运算表达式——基于二叉树的实现(Eclipse平台 Java版)
    深拷贝,浅拷贝
  • 原文地址:https://www.cnblogs.com/supiaopiao/p/11904419.html
Copyright © 2011-2022 走看看