比如我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>>() {});

httpClient调用接口的时候,解析返回报文内容的更多相关文章

  1. 使用HttpClient调用接口

    一,编写返回对象 public class HttpResult { // 响应的状态码 private int code; // 响应的响应体 private String body;get/set ...

  2. 使用httpClient调用接口,参数用map封装或者使用JSON参数,并转换返回结果

    这里接口用表存起来,标记请求方式,然后接受参数,消息或者请求参数都可以, 然后先是遍历需要调用的接口,封装参数,再分别调用get与post即可,没有微服务还是得自己写 //消息转发-获取参数中对应参数 ...

  3. java通过HttpClient调用接口总结

    2.HttpClient 2.1简介: 最近看项目的代码,看到工程中有两个jar包张的很像,一个是commons.httpclient-3.1.jar,一个是httpclient4.2.1.jar,很 ...

  4. 使用httpClient调用接口获取响应数据

    转自:https://blog.csdn.net/shuaishuaidewo/article/details/81136088 import lombok.extern.slf4j.Slf4j; i ...

  5. VB调用WebService(SOA2.0接口)(直接Post方式)并解析返回的XML

    SOA 2.0接口 Function GetDepartmentCode(reqDeptCode) Dim soaRequestXML : soaRequestXML = "" D ...

  6. 调用中行接口针对返回报文(xml形式)做相关处理

    最近在对接中行银行接口,在获取返回报文的时候遇到一些问题,现在在这里做个总结 TIP: 在返回报文之前,要对前置机的URL请求,在这期间遇到一个坑,还是通过查看日志才发现问题 在填写转账信息的时候要求 ...

  7. webService 发送soap请求,并解析返回的soap报文

    本例应用场景:要做一个webService测试功能,不局限于任何一种固定格式的webService,所以像axis,cxf等框架就不好用了.只有深入到webService的原理,通过发收soap报文, ...

  8. 使用HttpClient调用第三方接口

    最近项目中需要调用第三方的Http接口,这里我用到了HttpClient. 首先我们要搞明白第三方接口中需要我们传递哪些参数.数据,搞明白参数以后我们就可以使用HttpClient调用接口了. 1.调 ...

  9. Java 发送SOAP请求调用WebService,解析SOAP报文

    https://blog.csdn.net/Peng_Hong_fu/article/details/80113196 记录测试代码 SoapUI调用路径 http://localhost:8082/ ...

随机推荐

  1. 菜鸟宝典之Windows Server 2012 R2上PHP、MySQL环境搭建

    原文来自:https://www.jb51.net/article/59280.htm 上车准备一.准备工具服务器操作系统:Windows Server 2012PHP版本:5.6.9(根据自己需要) ...

  2. Ubuntu 18.04 系统 Update 后内核升级到5.0 导致 VMware Workstation 不正常工作

    Ubuntu 18.04 系统升级后,发现内核从 4.18 升级到 5.0,从而导致 VMware Workstation 启动主动更新,但总会显示 vmmon 和 vmnet 俩模块编译失败. 感谢 ...

  3. Vue快速学习_第四节

    获取原生的DOM方式($.refs) 给标签或者组件 添加ref <div ref = 'liu'>test</div> <Home ref = 'home'>&l ...

  4. java线程基础巩固---Thread API综合实战之编写ThreadService实现暴力结束线程

    上篇中在最后抛出一个问题,具体问题可以查看此篇[http://www.cnblogs.com/webor2006/p/7995229.html],这里不再概述,其实要实现这个需求可以用咱们之前学习的守 ...

  5. 第十五届四川省省赛 SCU - 4443 Range Query

    先给你1~N的N个数 再给你每种最多50个的条件(ai,bi,ci) 或者[ai,bi,ci] (ai,bi,ci)表示下标ai到bi的最小值必为ci [ai,bi,ci]表示下标ai到bi的最大值必 ...

  6. Java io 理解

    任何程序都有io部分,io是对程序来说数据流的输入和输出.这里说的流,是指有字节组成的列,不断输入程序,或者从程序中输出,我们形象称为流.Java的io流有两种,一种叫字节流,最原始的:一种叫字符流. ...

  7. 初识 MQTT——IBM

    为什么 MQTT 是最适合物联网的网络协议  官方网址: http://mqtt.org/ Michael Yuan2017 年 6 月 14 日发布 WeiboGoogle+用电子邮件发送本页面 0 ...

  8. Python之阿姆斯特朗数

    # Python 检测用户输入的数字是否为阿姆斯特朗数 # 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿阿姆斯特朗数 while True: # 获取用户输入的数字 num = int( ...

  9. Python3之threading模块

    import threading # Tips:一个ThreadLocal变量虽然是全局变量, # 但每个线程都只能读写自己线程的独立副本,互不干扰. # ThreadLocal解决了参数在一个线程中 ...

  10. Java集合框架之接口Collection源码分析

    本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法.在介绍Collection接口之前我们不得不先学习一下Iterable, ...