比如我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. 理解JavaScript里的 [].forEach.call() 写法

    原文:  http://www.webhek.com/javascript-foreach-call document.querySelectorAll() 返回的并不是我们想当然的数组,而是 Nod ...

  2. html2canvas-html图片合成-canvas生成图片

    作用 html2canvas可以通过纯JS对浏览器端经行截屏,但截图的精确度还有待提高,部分css不可识别,所以在canvas中不能完美呈现原画面样式 支持的浏览器 Firefox 3.5+ Goog ...

  3. Alpha个人项目测试

    这个作业属于哪个课程 [课程链接][ ] 这个作业要求在哪里 [作业要求][ ] 团队名称 [山海皆可平][ ] 作业目标 对其他小组进行测试 测试报告 姓名 唐友鑫 学号 201631062121 ...

  4. Tomcat 调优测试

    测试环境: OS: Ubuntu14.04 64位 (运行在Docker1.9) CPU: Intel i3 双核四线程 Mem: 8G Tomcat版本: Tomcat8.5 Java SDK版本: ...

  5. VUE-练习

    作业一:有红黄蓝三个按钮,以及一个200*200矩形box,点击不同按钮,box的颜色会被切换为指定的颜色 <!DOCTYPE html> <html lang="en&q ...

  6. PassengerNginxdebian快速部署Rails

    Passenger/Nginx/Debian快速部署Rails   PassengerNginxdebian快速部署Rails     安装所需的linux包 sudo apt-get install ...

  7. Java-WEB开发常用方法整理

    /** * 此类中收集Java编程中WEB开发常用到的一些工具. * 为避免生成此类的实例,构造方法被申明为private类型的. * @author */ import java.io.IOExce ...

  8. mysql的五大引擎跟优劣之分

    MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用: MERGE.MEMORY(HEAP).EXAMPLE.ARCHIVE.CSV. · MEMORY存储引擎提供“内存中”表.ME ...

  9. html css回顾总结

    //html基本结构<!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  10. SDOI2019R2游记

    Day 0 上午到了济南,住在了山下.下午颓颓颓,zhy在玩炉石,我在...打元气!我的机器人终于不掉HP通关了呢,送的皮肤好好看啊. Day 1 到考场后,打开题面,一看第一题似乎很可做啊,好像可以 ...