Spring RestTemplate 封装HTTPspring自带的一种封装模式,方便简洁,推荐使用
public static String httpGet(String url){RestTemplate restTemplate=new RestTemplate();String result=restTemplate.exchange(url, HttpMethod.GET,null,String.class).getBody();return result;}public static String httpPost(String url,String name){RestTemplate restTemplate=new RestTemplate();return restTemplate.postForEntity(url,name,String.class).getBody();}HTTPS请求的封装https请求只是在http请求的基础上面添加了SSL验证,通过下面的SLLClient 封装即可,调用的时候:
httpClient = SSLClient.createSSLClientDefault();
public class SSLClient {public static CloseableHttpClient createSSLClientDefault(){try {SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {//信任所有public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException {return true;}}).build();SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext);return HttpClients.custom().setSSLSocketFactory(sslsf).build();} catch (KeyManagementException e) {e.printStackTrace();} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (KeyStoreException e) {e.printStackTrace();}returnHttpClients.createDefault();}}JSON多层嵌套处理接口返回的时候,目前用得最多的方式是返回json格式,因为json格式比较成熟,包括取值,实例化等等 。这里介绍一种后端处理json返回多层嵌套的方式:1. 实例化json数据优点: 实例化了数据结构,想获取任何数据都能使用实例化的方法 。不用理会它有几层,它的数据结构是什么(List, array,string等等)
2. 请求Http 接口获取返回值
3. 实例化返回值并获取你想要的key或者value,或者做验证都行
缺点: 需要返回的数据结构稳定,不能返回变动的数据结构,另外实例化有一定的代码量,比较繁琐(但是有固定插件解决)
实操:
1. IDEA ---settings-----install plugins----GSON 插件实例化截图:
2. 新增一个entity实体类,在新建的实体类使用alt+S 快捷键打开GSON插件
3. 输入你想要实例化的JSON数据,一直下一步即可完成实例化 。
文章插图
Service层调用实例化:
//实例化的时候注意数据格式,List的话可以循环获取(下面的注释部分);最终存储到map里面返回Gateway gatewaydata = https://www.isolves.com/it/cxkf/yy/JAVA/2022-08-05/JSON.parseobject(res, Gateway.class);Map resMap=new HashMap<>();String value=gatewaydata.getComponent().getMeasures().get(0).getPeriods().get(0).getValue();String metric=gatewaydata.getComponent().getMeasures().get(0).getMetric();//获取各个区的名称//List clist=state.getData().get(0).getCity().get(0).getCounty();//for(Country c:clist){//System.out.println("cname:"+c.getName());//}System.out.println(value+metric);resMap.put("metric",metric);resMap.put("value",value); 【「SpringBoot」 Java中如何封装Http请求】
推荐阅读
- 翡翠|「吴中博物馆」珍藏的整套晚清翡翠,打破大众对老翡翠的固有认知
- 短发|孙艺珍脸圆了,「肩上短发」待产新造型美翻
- |你身上是否有管理者潜质?「上」
- iPhone 一键「降级」iOS 4,效果绝了
- 义务教育数学课程标准(「数字化学习」)
- 医美|海报试用 | 新升级的「虫草粉底」在“养肤”路上越走越光彩了?
- 「Java」封装的实现,访问限定符、包
- SpringBoot的六边形架构案例
- 啃老|「啃老的巨婴」碰上「不专业的打工人」,两口子真 ? 绝配
- 坑害90%女人的痛终于能治好了
