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

山东网站排行网站运营模式

山东网站排行,网站运营模式,pc网站同步手机网站,绵阳网站建设工作室问题背景 业务需要#xff0c;经常需要http方式调用某服务#xff0c;然后某服务返回特定类型的返回内容。 类似 String resStr xxxHttpClient.post() #xff0c;然后它返回一个字符串#xff0c;你还需要反序列化成某种格式的。 返回值可以反序列化成的形式如下#…问题背景 业务需要经常需要http方式调用某服务然后某服务返回特定类型的返回内容。 类似 String resStr xxxHttpClient.post() 然后它返回一个字符串你还需要反序列化成某种格式的。 返回值可以反序列化成的形式如下 {private String code;private String message;//这里的这个“T”就是根据具体业务需要而不同的类型可能是一个class也可能是一个List等private T data; }注意这里的这个T是个活的它可能根据接口的内容不同而不同。 有时候是个普通对象如 public class StudentInfo{private Integer age;private String name; }这样。 2. 有时候是个List如 ListStudentInfo 这样 3. 有时候是个嵌套对象如 public class StudentInfo{private Integer pageNum;private Integer pageSize;private Integer totalCount;private ListStudentInfo 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, MapString, String params, ClassT clazz) {//当前时间戳Long timestamp System.currentTimeMillis();String sign .....;//headersMapString, String heads ...;ResponseBody responseBody myXXHttpClient.doPost(url, heads, params);String responseMsg responseBody.getResponseMsg();//普通反序列化//MyDataResDTO myDataResDTO JSONObject.parseObject(reposeBody.getResponseMsg(), MyDataResDTO.class);//嵌套类反序列化BaseCommonResDTOT result JSONObject.parseObject(responseMsg, new TypeReferenceBaseCommonResDTOT(clazz) {});if (null ! result) {T data result.getData();return data;} else {return null;}}public T extends Object ListT doPostForList(String url, MapString, String params, ClassT clazz) {//当前时间戳Long timestamp System.currentTimeMillis();String sign ...;//headersMapString, String heads ...;ResponseBody responseBody myXXHttpClient.doPost(url, heads, params);String responseMsg responseBody.getResponseMsg();//普通反序列化//MyDataResDTO myDataResDTO JSONObject.parseObject(reposeBody.getResponseMsg(), MyDataResDTO.class);//嵌套类反序列化BaseCommonResDTOListT result JSONObject.parseObject(responseMsg, new TypeReferenceBaseCommonResDTOListT(clazz) {});if (null ! result) {ListT data result.getData();return data;} else {return null;}} } 使用举例 调用的时候 //返回对象 包括返回普通对象 和 返回嵌套对象都亲测成功 public StudentInfo getStudentInfo (Integer page, Integer pageSize) {MapString, String params Maps.newHashMap();params.put(param1, page);params.put(param2, pageSize);StudentInfo studentInfo MyCustomHttp.doPost(url, params, StudentInfo.class);return studentInfo; }//返回list public ListStudentInfo getAllStudentInfos(Integer page, Integer pageSize) {MapString, String params Maps.newHashMap();params.put(param1, page);params.put(param2, pageSize);ListStudentInfo studentInfos MyCustomHttp.doPostForList(url, params, StudentInfo.class);return studentInfos; }然后再使用就非常优雅了。 主要思想就是把想返回的数据类型作为doPost 或 doPostForList的第三个参数传入从而实现灵活控制接口返回类型的目的。 感觉效果不错推荐使用。
http://www.huolong8.cn/news/25931/

相关文章:

  • 网站源码安装教程太平洋手机官网
  • 网站建设时如何选择合适的服务器备案时网站服务内容
  • 网站改版流程如何做百度网站
  • 免费做文字图网站南京个人网站建设模板
  • 学会网站 建设连云港网站备案在哪
  • 如何选择坪山网站建设品牌营销策划公司
  • 国内创意网站案例国外wordpress模板下载
  • 公司网站建设款计什么科目福步外贸论坛网官网
  • 宜宾汽车网站建设广州招投标交易中心
  • 泰安网站seo产品外观设计网站
  • 网站建设管理经验做法新增网站推广
  • 网站加载效果怎么做的seo资讯推推蛙
  • 开封市住房和城乡建设局网站做软件跟做网站哪个难
  • 班级网站建设的范围网站建设的方法有哪些内容
  • 摄影网站设计图片wordpress桌面应用程序
  • 云南网站开发公司介绍网站设计与开发网站策划
  • 网站模版建设工具网站你懂我意思正能量app
  • 学校的网站建设和资源库建设网站运维托管
  • 免费做app网站新品牌进入市场的推广方案
  • 详细描述建设网站深圳市制作网站
  • 网站建设 aderhtml网站的上传
  • 企业网站建设解决方案保定官网优化技巧
  • 自己做网站用什么数据库wordpress iphoto
  • 网站采用哪种开发语言网站空间已过期
  • 网站有版权吗写网站建设的论文
  • 临沂专业网站制作秦洁婷seo博客
  • 财政局门户网站建设方案房产网站源码wordpress
  • 3 阐述网站建设的步骤过程微商怎么找客源人脉
  • 用自家宽带做网站服务器汕头第一网告别单身
  • 网站建设模板代码下载代写