首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >通过RestTemplate设置header&body,绕过证书验证,并获取返回的header&body

通过RestTemplate设置header&body,绕过证书验证,并获取返回的header&body

作者头像
chenchenchen
发布于 2021-09-06 06:25:58
发布于 2021-09-06 06:25:58
1.6K00
代码可运行
举报
文章被收录于专栏:chenchenchenchenchenchen
运行总次数:0
代码可运行

背景

使用HttpClients请求外部接口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  @Test
  public void test(){

    try{

      // 使用httpClient请求

      // 请求路径
      String url = "localhost:8080/user/info";

      // 请求头
      Map headerMap = new HashMap();
      headerMap.put("Content-Type", "application/json;chartset=UTF-8");

      // 请求体
      Map body = new HashMap();
      body.put("phone",phone);
      String requstString = JSONObject.toJSONString(body);

      HttpConfig httpConfig = HttpConfigUtil.getHttpConfigForJson(
              headerMap, requstString,
              url,
              700, "UTF-8");
      String result = com.aspire.mall.common.httpclient.HttpClientUtil.post(httpConfig);

      System.out.println("查询用户信息接口返回result:"+result);
      JSONObject jsonObject = JSON.parseObject(result);
      JSONArray subPhoneInfoArray = jsonObject.getJSONObject("Body").getJSONArray("subphonelist");
      for(int i = 0 ;i<subPhoneInfoArray.size();i++){
        JSONObject subPhoneInfo = subPhoneInfoArray.getJSONObject(i);
        subPhones.add(subPhoneInfo.getString("subphone"));
      }

      System.out.println("查询用户信息接口返回subPhones:"+ String.join(",",subPhones));

    }catch (Exception e){
      e.printStackTrace();
    }

  }

但是报缺少安全证书:unable to find valid certification path to requested target

用以下办法能够暂时解决:请求HTTPS接口提示缺少安全证书

但是切换环境证书需要重新生成,不是办法。

使用RestTemplate请求

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  @Test
  public void test(){

    try{

      String url = "localhost:8080/user/info";

      // 请求体
      Map body = new HashMap();
      body.put("phone",phone);
      String requstString = JSONObject.toJSONString(body);

      // 请求头
      HttpHeaders headers = new HttpHeaders();
      headers.add("content-type", "application/json;chartset=UTF-8");

      // 请求
      HttpEntity<String> requst = new HttpEntity<>(requstString, headers);


      // 使用RestTemplate请求

      RestTemplate restTemplateHttps = new RestTemplate(RestTemplateConfig.generateHttpRequestFactory());
      ResponseEntity<JSONObject> responseBody = restTemplateHttps.postForEntity(url, requst, JSONObject.class);

      JSONObject httpBody = responseBody.getBody();
      System.out.println("接口返回参数:"+httpBody);

      List<String> subPhones = new ArrayList<>();
      JSONArray subPhoneInfoArray = httpBody.getJSONObject("Body").getJSONArray("subphonelist");
      for(int i = 0 ;i<subPhoneInfoArray.size();i++){
        JSONObject subPhoneInfo = subPhoneInfoArray.getJSONObject(i);
        subPhones.add(subPhoneInfo.getString("subphone"));
      }

      System.out.println("查询用户信息接口返回subPhones:"+ String.join(",",subPhones));

    }catch (Exception e){
      e.printStackTrace();
    }

  }

参考:

RestTemplate实现http和https方式的远程调用:https://blog.csdn.net/qq_40950903/article/details/108647457

RestTemplate 中设置 header 以及使用 HTTP 基本认证的方法:https://blog.csdn.net/HeatDeath/article/details/79449607

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/04/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Java应用】Java提取B站视频教程详情(完整代码|下载可直接运行|自带页面|可直接复制)
B站这个视频列表是真的体验感太差了,有时候想把章节复制下来,再对应的章节下面做笔记,实在是太难搞了,于是就有了这篇文文章
九转成圣
2024/04/10
8780
【Java应用】Java提取B站视频教程详情(完整代码|下载可直接运行|自带页面|可直接复制)
Java基础系列之fastjson parse多级json数据
Java基础系列之fastjson parse多级json数据 { "success":true, "message":"成功", "parameters":{ "data":{ "userInfo":[ { "wxUserId":"100289085", "loginId":"admin",
SmileNicky
2020/10/26
1.3K0
万字长文讲解调用第三方接口,RestTemplate,urlConnection使用详解,java代码模拟postman发送请求
在日常开发中,经常需要调用第三方接口,例如调用物流接口,此时需要利用urlConnection或者restTemplate模拟postman发送请求,请求支持加header ,设置content-type支持传递json;请求方式get,post,也可以需要传递文件,或者传递文件流;
javaNice
2023/11/20
1.1K0
一文吃透接口调用神器RestTemplate
发送 http 请求,估计很多人用过 httpclient 和 okhttp,确实挺好用的,而 Spring web 中的 RestTemplate 和这俩的功能类似,也是用来发送 http 请求的,不过用法上面比前面的 2 位要容易很多。
路人甲Java
2021/11/08
12.3K0
一文吃透接口调用神器RestTemplate
重学SpringBoot3-RestTemplate配置与使用详解
RestTemplate 是 Spring 框架提供的一个用于发送 HTTP 请求的同步客户端工具类。在 SpringBoot 3.x 版本中,我们依然可以使用 RestTemplate 来进行 REST API 的调用。本文将详细介绍如何在 SpringBoot 3 项目中配置和使用 RestTemplate。
CoderJia
2024/12/02
1.7K0
重学SpringBoot3-RestTemplate配置与使用详解
Java发送Post请求,获取返回的请求头Header
在利用Java网络编程时,利用Java获取HTTP Request 和 Response头字段;
chenchenchen
2021/09/06
6.4K0
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
dolphinscheduler调度器接入注意事项等信息可参考我的上一篇博客进行了解,地址在这里 ->
刘大猫
2025/07/17
1350
Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)
RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。
Java_老男孩
2019/12/02
11.7K1
Spring-RestTemplate实战
这里总结一下,怎么用代码发起HTTP请求:Post、Get等。之前类似的请求都是用Postman。RestTemplate网上教程也是很多,但是编程就是要多实战,可能受制于版本等各种客观因素,同样的教程实战可能会有不同的结果。
用户2146693
2019/08/08
9150
Spring-RestTemplate实战
RestTemplate post请求返回状态码415「建议收藏」
对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝
全栈程序员站长
2022/08/28
2.2K0
RestTemplate.exchange各种用法(包括泛型等 --全)
在我们日常开发中,无论是内部服务之间的调用,还是调用第三方服务,都免不了发起Http请求,在Java中发起Http请求常见的方式大致有原生HttpURLConnection、Apache的HttpClient、Spring的RestTemplate等,如果您基于Spring框架,那么强烈推荐使用RestTemplate,理由很简单:非常符合我们发起http请求的习惯,就像使用postman,只需要关心具体的url、header、body等即可,对于繁琐的细节RestTemplate都帮我们安排(封装)的明明白白,无关的细节我们统统不用操心! 尤其是RestTemplate.exchange方法,可以称的上是单靠一招就可以吊打其它方式。。。 所以本文就来详细介绍一下RestTemplate.exchange各种用法,力求覆盖日常开发中的各种场景,Let’s start~~
天罡gg
2022/12/02
6.9K1
RestTemplate.exchange各种用法(包括泛型等 --全)
Springboot 整合 RestTemplate 调用第三方接口
导入依赖 springboot 已经加入了该依赖 import org.springframework.web.client.RestTemplate; 创建工具类 @Component @Slf4j public class RestTemplateUtil { @Resource private RestTemplate restTemplate; /** * 配置请求超时时间 */ public final HttpComponentsC
用户10125653
2022/11/10
1.3K0
【基于ChatGPT+SpringBoot】打造智能聊天AI机器人接口并上线至服务器
ChatGPT是一款基于自然语言处理技术的聊天机器人。它使用受控语料库,并使用最先进的深度学习技术来学习用户的输入,以便以最相似的方式回应。ChatGPT可以模拟真实的人类对话,并能够更贴近用户的需求,提供更有价值的服务。
大数据小禅
2023/01/03
3.5K0
【基于ChatGPT+SpringBoot】打造智能聊天AI机器人接口并上线至服务器
springboot-1-restTemplate的使用
原博客: http://blog.csdn.net/u013895412/article/details/53096855
用户5640963
2019/07/26
1.1K0
使用 RestTemplate 进行第三方Rest服务调用
RestTemplate 是 Spring 提供的一个调用 Restful 服务的抽象层,它简化的同 Restful 服务的通信方式,隐藏了不必要的一些细节,让我们更加优雅地在应用中调用 Restful 服务 。但是在 Spring 5.0 以后RestTemplate处于维护模式,不再进行新特性的开发,仅仅进行一些日常维护。Spring 建议我们使用同时支持同步、异步和 Stream 的另一个 API —— WebClient 。但是在 Spring MVC 下目前我们还没有更好的选择。
码农小胖哥
2020/04/17
1.5K0
使用 RestTemplate 进行第三方Rest服务调用
重学springboot系列番外篇之RestTemplate
RestTemplate是执行HTTP请求的同步阻塞式的客户端,它在HTTP客户端库(例如JDK HttpURLConnection,Apache HttpComponents,okHttp等)基础封装了更加简单易用的模板方法API。也就是说RestTemplate是一个封装,底层的实现还是java应用开发中常用的一些HTTP客户端。但是相对于直接使用底层的HTTP客户端库,它的操作更加方便、快捷,能很大程度上提升我们的开发效率。
大忽悠爱学习
2021/12/15
4.9K0
重学springboot系列番外篇之RestTemplate
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
dolphinscheduler调度器接入注意事项等信息可参考我的上一篇博客进行了解,地址在这里 ->
刘大猫
2025/07/12
1210
resttemplate post请求发送body_java发送post请求
1POST传递参数 :采用 LinkedMultiValueMap ,不能使用HashMap
全栈程序员站长
2022/10/03
3.1K0
玩转Spring Boot之RestTemplate的使用
在java代码里想要进行restful web client服务,一般使用Apache的HttpClient。不过此种方法使用起来太过繁琐。Spring Boot提供了一种简单便捷的内置模板类来进行操作,这就是RestTemplate。
闫同学
2022/10/31
7220
Java中restTemplate携带Header请求
restTemplate发送POST请求时可以通过如下方法获取ResponseEntity:
代码的路
2023/03/21
8290
推荐阅读
相关推荐
【Java应用】Java提取B站视频教程详情(完整代码|下载可直接运行|自带页面|可直接复制)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档