当前位置: 首页 > news >正文

专业网页设计师搜索引擎seo优化平台

专业网页设计师,搜索引擎seo优化平台,wordpress 案例,在线制作logo免费生成器问题背景 业务需要,经常需要http方式调用某服务,然后某服务返回特定类型的返回内容。 类似 String resStr xxxHttpClient.post() ,然后它返回一个字符串,你还需要反序列化成某种格式的。 返回值可以反序列化成的形式如下&#…

问题背景

业务需要,经常需要http方式调用某服务,然后某服务返回特定类型的返回内容。
类似 String resStr = xxxHttpClient.post() ,然后它返回一个字符串,你还需要反序列化成某种格式的。

返回值可以反序列化成的形式如下:

{private String code;private String message;//这里的这个“T”,就是根据具体业务需要而不同的类型,可能是一个class,也可能是一个List等private T data;
}

注意,这里的这个T是个活的,它可能根据接口的内容不同而不同。

  1. 有时候是个普通对象,如
public class StudentInfo{private Integer age;private String name;		
}

这样。
2. 有时候是个List,如 List<StudentInfo> 这样
3. 有时候是个嵌套对象,如:

public class StudentInfo{private Integer pageNum;private Integer pageSize;private Integer totalCount;private List<StudentInfo> list;		
}

这样。

甚至更多种情况,那么,要怎么办呢?
还挺不好写活的。

封装了一个方法,实现上述功能

(已删除若干不相干代码,不影响含义)

import cn.xxx.dto.BaseCommonResDTO;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;import java.util.List;
import java.util.Map;/*** @author * @date 2023年8月25日* @desc 泛型方法,返回泛型,完美封装* https://blog.csdn.net/qq_39348918/article/details/120529916*/
@Slf4j
@Component
public class MyCustomHttp {/*** 返回数据类型* 其中T是xxx的htttp接口返回的数据的类型** @param url* @param params* @return*/public <T extends Object> T doPost(String url, Map<String, String> params, Class<T> clazz) {//当前时间戳Long timestamp = System.currentTimeMillis();String sign = .....;//headersMap<String, String> heads = ...;ResponseBody responseBody = myXXHttpClient.doPost(url, heads, params);String responseMsg = responseBody.getResponseMsg();//普通反序列化//MyDataResDTO myDataResDTO = JSONObject.parseObject(reposeBody.getResponseMsg(), MyDataResDTO.class);//嵌套类反序列化BaseCommonResDTO<T> result = JSONObject.parseObject(responseMsg, new TypeReference<BaseCommonResDTO<T>>(clazz) {});if (null != result) {T data = result.getData();return data;} else {return null;}}public <T extends Object> List<T> doPostForList(String url, Map<String, String> params, Class<T> clazz) {//当前时间戳Long timestamp = System.currentTimeMillis();String sign = ...;//headersMap<String, String> heads = ...;ResponseBody responseBody =myXXHttpClient.doPost(url, heads, params);String responseMsg = responseBody.getResponseMsg();//普通反序列化//MyDataResDTO myDataResDTO = JSONObject.parseObject(reposeBody.getResponseMsg(), MyDataResDTO.class);//嵌套类反序列化BaseCommonResDTO<List<T>> result = JSONObject.parseObject(responseMsg, new TypeReference<BaseCommonResDTO<List<T>>>(clazz) {});if (null != result) {List<T> data = result.getData();return data;} else {return null;}}
}

使用举例

调用的时候


//返回对象 (包括返回普通对象 和  返回嵌套对象,都亲测成功)
public StudentInfo getStudentInfo (Integer page, Integer pageSize) {Map<String, String> params = Maps.newHashMap();params.put("param1", page);params.put("param2", pageSize);StudentInfo studentInfo = MyCustomHttp.doPost(url, params, StudentInfo.class);return studentInfo;
}//返回list
public List<StudentInfo> getAllStudentInfos(Integer page, Integer pageSize) {Map<String, String> params = Maps.newHashMap();params.put("param1", page);params.put("param2", pageSize);List<StudentInfo> studentInfos= MyCustomHttp.doPostForList(url, params, StudentInfo.class);return studentInfos;
}

然后再使用就非常优雅了。
主要思想就是把想返回的数据类型,作为doPostdoPostForList的第三个参数传入,从而实现灵活控制接口返回类型的目的。
感觉效果不错,推荐使用。

http://www.tj-hxxt.cn/news/3800.html

相关文章:

  • 金融网站制作关键词自动生成器
  • 公司网站制作重庆最新国际新闻热点事件
  • 一个网站怎么做镜像站如何进行营销推广
  • 西安企业网站建设公司如何建造自己的网站
  • 公总号开发就是网站开发吗免费域名注册永久
  • 做平面设计去哪个网站找素材好国际新闻
  • 北京app建设 网站开发公司百度售后客服电话24小时
  • 山东大学青岛校区建设指挥部网站合肥网络推广优化公司
  • 做免费看电影的网站不违法吗网络事件营销案例
  • 临清聊城网站优化谷歌seo站内优化
  • 亚马逊网站建设评述如何营销
  • 买了域名如何做网站最新热搜新闻
  • 江西火电建设公司网站竞价推广账户托管费用
  • 网站开发长春代写平台
  • 超低价的郑州网站建设怎么做网站排名
  • psd模板怎么做网站百度网址链接是多少
  • 昆明网站服务seo实战密码
  • 政府网站建设工作 主要职责网推团队
  • 深圳微信网站制作企业网络营销策划案例
  • 芜湖网站建设优化外链在线生成
  • 福州网站推广营销网站建设软件下载
  • 丽水做企业网站的公司广州网站推广平台
  • wordpress 商品设置引擎优化seo
  • 平台设计软件上海优化关键词的公司
  • 虾皮跨境电商网站网络营销的目标
  • 深圳建站公司招聘淘宝关键词查询工具
  • 网站的建设方法包括什么问题google seo整站优化
  • 北京环球影城风险等级关键词排名优化网站
  • 建设工程施工合同司法解释一seo和sem分别是什么
  • 扬州做网站哪家好如何联系百度推广