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>>() {});
httpClient调用接口的时候,解析返回报文内容的更多相关文章
- 使用HttpClient调用接口
一,编写返回对象 public class HttpResult { // 响应的状态码 private int code; // 响应的响应体 private String body;get/set ...
- 使用httpClient调用接口,参数用map封装或者使用JSON参数,并转换返回结果
这里接口用表存起来,标记请求方式,然后接受参数,消息或者请求参数都可以, 然后先是遍历需要调用的接口,封装参数,再分别调用get与post即可,没有微服务还是得自己写 //消息转发-获取参数中对应参数 ...
- java通过HttpClient调用接口总结
2.HttpClient 2.1简介: 最近看项目的代码,看到工程中有两个jar包张的很像,一个是commons.httpclient-3.1.jar,一个是httpclient4.2.1.jar,很 ...
- 使用httpClient调用接口获取响应数据
转自:https://blog.csdn.net/shuaishuaidewo/article/details/81136088 import lombok.extern.slf4j.Slf4j; i ...
- VB调用WebService(SOA2.0接口)(直接Post方式)并解析返回的XML
SOA 2.0接口 Function GetDepartmentCode(reqDeptCode) Dim soaRequestXML : soaRequestXML = "" D ...
- 调用中行接口针对返回报文(xml形式)做相关处理
最近在对接中行银行接口,在获取返回报文的时候遇到一些问题,现在在这里做个总结 TIP: 在返回报文之前,要对前置机的URL请求,在这期间遇到一个坑,还是通过查看日志才发现问题 在填写转账信息的时候要求 ...
- webService 发送soap请求,并解析返回的soap报文
本例应用场景:要做一个webService测试功能,不局限于任何一种固定格式的webService,所以像axis,cxf等框架就不好用了.只有深入到webService的原理,通过发收soap报文, ...
- 使用HttpClient调用第三方接口
最近项目中需要调用第三方的Http接口,这里我用到了HttpClient. 首先我们要搞明白第三方接口中需要我们传递哪些参数.数据,搞明白参数以后我们就可以使用HttpClient调用接口了. 1.调 ...
- Java 发送SOAP请求调用WebService,解析SOAP报文
https://blog.csdn.net/Peng_Hong_fu/article/details/80113196 记录测试代码 SoapUI调用路径 http://localhost:8082/ ...
随机推荐
- ISO/IEC 15444-12 MP4 封装格式标准摘录 5
目录 Segments Segment Type Box Segment Index Box Subsegment Index Box Producer Reference Time Box Supp ...
- Asp.Net Zero通用打印实现
Asp.Net Zero是一款非常优秀的web框架,可以用来快速构建业务系统.框架满足了业务系统所需的大部分通用功能,但是系统必须的打印报表功能一直没有实现.下面给大家介绍如何在zero中集成打印功能 ...
- BZOJ 1006 完美消除序列&最大势算法&弦图
K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系等等的存在.所谓N边关系 ...
- QT对话框
QFileDialog:文件对话框 QString fileName=QFileDialog::getOpenFileName(this,"打开文件", "/" ...
- Storm实践(一):基础知识
storm简介 Storm是一个分布式实时流式计算平台,支持水平扩展,通过追加机器就能提供并发数进而提高处理能力:同时具备自动容错机制,能自动处理进程.机器.网络等异常. 它可以很方便地对流式数据进行 ...
- 【转】用win7(64位)远程桌面连接linux(Ubuntu14.04)详细教程
转自:http://blog.csdn.net/qq754438390/article/details/50042511 亲测,确实是可以.非常感谢原博. 用win7(64位)远程桌面连接linux( ...
- hadoop中的JournalNode
1.在HADOOP扮演的角色 JournalNode是在MR2也就是Yarn中新加的,journalNode的作用是存放EditLog的, 在MR1中editlog是和fsimage存放在一起的然后S ...
- @SpringQueryMap注解 feign的get传参方式(转)
spring cloud项目使用feign的时候都会发现一个问题,就是get方式无法解析对象参数.其实feign是支持对象传递的,但是得是Map形式,而且不能为空,与spring在机制上不兼容,因此无 ...
- 题解 【NOIP2010】关押罪犯
[NOIP2010]关押罪犯 Description S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突 ...
- 9种纯CSS3人物信息卡片动态展示效果
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...