码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • RestTemplate使用笔记


    RestTemplate常用于请求第三方接口

    一般有get,post,exchange等多种方式

    在请求时,可以自己设置请求头等

    RestTemplate的使用

    参考:RestTemplate | 使用详解_    (重点参考) 

    RestTemplate的请求参数传递问题 RestTemplate发送Get请求通过body传参问题

    RestTemplate中postForEntity其中参数为数组或者List_

    restTemplate模拟浏览器登录携带cookie请求接口_

    注意:

    get方式是将请求参数设置到url上的

    post方式是将参数设置到body里面

    post设置请求体的访问方式一般使用:

    1. 设置请求体的访问方式一般使用map:
    2. MultiValueMap params = new LinkedMultiValueMap<>();
    3. // 除了map以外,也可以使用string,根据请求头类型来确认
    4. 示例封装的方法:
    5. public String doPostForBody(String url, MultiValueMap body) {
    6. HttpHeaders headers = new HttpHeaders();
    7. // 设置请求类型,根据需要设置
    8. headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
    9. // 设置请求头的方式,根据需要设置
    10. List cookies = new ArrayList<>();
    11. cookies.add(expendParam.getCookiesStr());
    12. headers.put(HttpHeaders.COOKIE, cookies);
    13. // 设置请求boby
    14. HttpEntity> entity = new HttpEntity<>(body, headers);
    15. ResponseEntity resp = null;
    16. try {
    17. resp = restTemplate.postForEntity(url, entity, String.class);
    18. } catch (RestClientException e) {
    19. logger.error("请求失败:{}", url);
    20. logger.error("请求失败:", e);
    21. }
    22. return resp.getBody();
    23. }
    24. // 使用完成后一般将string转换为json数据
    25. JSONObject jsonObject = JSON.parseObject(doPostForBody(url,body));
    26. // 注意,存在多个值时,即为数组,获取数组循环转换,
    27. JSONArray jsonArray = jsonObject.getJSONArray("rows");

    如果要将返回的数据设置成自己的实现类,因为json数据是key-value形式,即map形式,一般使用Json格式化工具类转换  ,直接将返回的string使用工具类转换  

    1. @Data
    2. public class Pojo01 {
    3. private String field1;
    4. private String field2;
    5. private String field3;
    6. private String field4;
    7. private String field5;
    8. }
    9. public class Test01 {
    10. public static void main(String[] args) {
    11. Map hashMap = new HashMap<>();
    12. hashMap.put("field1", "value1");
    13. hashMap.put("field2", "value2");
    14. hashMap.put("field3", "value3");
    15. hashMap.put("field4", "value4");
    16. hashMap.put("field5", "value5");
    17. //将HashMap转为JSON,在转为Pojo01对象:
    18. String toJSON = JSONObject.toJSONString(hashMap);
    19. Pojo01 pojo01 = JSONObject.toJavaObject(JSON.parseObject(toJSON), Pojo01.class);
    20. System.out.println(" pojo01 = " + pojo01.toString());
    21. }
    22. }

  • 相关阅读:
    IDEA插件开发(21)--List and Tree Controls
    接口调试工具概论
    用栈模拟队列
    .NET 8 Release Candidate 1 (RC1)现已发布,包括许多针对ASP.NET Core的重要改进!
    归并排序递归与非递归超详细讲解C语言
    倍福PLC实现绝对值编码器原点断电保持---bias的使用
    git上传代码(第一次或已有代码)
    对main方法中“String[] args“数组的理解
    金仓数据库KingbaseES客户端应用参考手册--21. kbbadger
    盲打键盘的正确指法指南
  • 原文地址:https://blog.csdn.net/qq_42199464/article/details/126037325
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号