Spring的RestTemplate功能举例

import com.google.common.collect.Maps;
import com.shein.dms.common.BasicCase;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.web.client.RestTemplate;
import org.testng.annotations.Test;

import java.util.HashMap;

/**
 * @author :gongxr
 * @description:测试RestTemplate 参考文档:https://github.com/itguang/springcloud-learn/tree/master/resttemplate-test
 */
@Slf4j
public class TestRestTemplate extends BasicCase {
    public String urlPath = "http://www.baidu.com";

    @Autowired
    RestTemplate restTemplate;

    UserEntity userEntity;

    @Test
    public void testGet() {
        ResponseEntity responseEntity = restTemplate.getForEntity(urlPath, String.class);
        log.info(responseEntity.getBody());

        // 有参数的GET方法
        HashMap map = new HashMap<>();
        map.put("id", "aaa");
        ResponseEntity responseEntity2 = restTemplate.getForEntity("http://localhost/get/id={id}", UserEntity.class, map);
        UserEntity userEntity = responseEntity2.getBody();
    }

    @Test
    public void testGet2() throws Exception {
        String url = sysConfig.getDmsUrl() + "/dms/presets/logs?id=4486";
        // 消息头
        HttpHeaders headers = new HttpHeaders();
        headers.add("cookie", commonService.getDmsCookie2("关健"));
//        消息体
        HashMap bodyMap = Maps.newHashMap();
        HttpEntity httpEntity = new HttpEntity(bodyMap, headers);
//        发送请求
        ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);
        log.info("请求地址:{}", url);
        log.info("消息头:{}", headers.toString());
        log.info("请求消息体:{}", httpEntity.getBody().toString());
        log.info("响应消息:{}", responseEntity.getBody());
    }

    @Test
    public void testPostDemo() throws Exception {
        String url = sysConfig.getDmsUrl() + "/dms/vmiAutoOrderSupplier/list";
        // 消息头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.add("cookie", commonService.getDmsCookie2("关健"));
//        消息体
        HashMap bodyMap = Maps.newHashMap();
        bodyMap.put("title", "");
        bodyMap.put("pageNumber", 1);
        bodyMap.put("pageSize", 3);
        HttpEntity httpEntity = new HttpEntity(bodyMap, headers);
//        发送请求
        ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
        log.info("请求地址:{}", url);
        log.info("消息头:{}", headers.toString());
        log.info("请求消息体:{}", httpEntity.getBody().toString());
        log.info("响应消息:{}", responseEntity.getBody());
    }

    @Data
    protected class UserEntity {
        private String name;
        private int age;
    }

}

Original: https://www.cnblogs.com/gongxr/p/16360970.html
Author: 星瑞
Title: Spring的RestTemplate功能举例

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541502/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SpringBoot整个RabbitMQ详细~

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月7日
    082
  • Mysql学习笔记-临键锁实验

    前言昨天同事跟我聊到一个问题:InnoDB里面间隙锁锁住的数据可以update么?我们经常都说间隙锁是InnoDB在RR隔离级别下防止幻读的一种处理手段。它可以防止数据在间隙范围中…

    Java 2023年6月5日
    097
  • 【spring源码学习】spring事务中的嵌套事务中的保存点相关知识

    JDBC事务保存点(setSavepoint, releaseSavepoint )实例 以下是使用事务教程中描述的 setSavepoint和回滚的代码示例。 此示例代码是基于前…

    Java 2023年5月29日
    073
  • 从new File(“”)到jdk源码

    概述 今天在项目中看到下面两行代码,看注释说是获取当前工作路径,之前也没有用过这种用法,比较好奇还能这样用,所以研究了一下源码。 //&#x83B7;&#x53D6…

    Java 2023年6月14日
    079
  • 开源软件SoftEther拆分隧道突破

    最近在寻找比较好用的开源VPN,感觉SoftEther很符合我的需求。一方面是SoftEther属于开源软件并且一直在更新,另一方面是功能强大,好用。 VPN支持路由功能和NAT功…

    Java 2023年6月5日
    0109
  • M1上安装OpenJDK8

    brew上还没有M1的JDK8,所以只能通过手动下载第三方的OpenJDK的方式,参考如下链接: https://dev.to/shane/configure-m1-mac-to-…

    Java 2023年5月30日
    081
  • IDEA生成带参数和返回值注释

    步骤说明 打开IDEA进入点击左上角 – 文件 – 设置 – 编辑器 – 活动模板 新建活动模板 填写模板文本 编辑变量 添加变量表…

    Java 2023年6月15日
    0113
  • 浅尝Spring注解开发_简单理解BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor、ApplicationListener

    浅尝Spring注解开发,基于Spring 4.3.12分析BeanFactoryPostProcessor、BeanDefinitionRegistryPostProcessor…

    Java 2023年6月5日
    076
  • windows nginx配置https访问

    本文主要记录在windows下安装nginx 环境:win10-64位。 到nginx官网上下载相应的安装包,http://nginx.org/en/download.html; …

    Java 2023年5月30日
    085
  • Hash

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何…

    Java 2023年6月5日
    094
  • [springmvc]springmvc的实现流程原理,以及快速创建一个三层架构项目

    1.回顾mvc 模型 模型(dao,service):业务逻辑,保存数据的状态 视图 视图(jsp,html……):展示页面 控制器 控制(servlet)…

    Java 2023年6月6日
    097
  • java函数式编程之Collector、Optional、CompletableFuture详解

    1. Stream.collect() collect就是一个归约操作,就像reduce一样可以接受各种做法作为参数,将流中的元素累积成一个汇总结果 reduce不会修改累计值对象…

    Java 2023年6月9日
    076
  • Aerospike java client

    1、要求 java client 要求jdk8及以上版本 2、依赖包 maven com.aerospike aerospike-client 5.0.0 gradle repos…

    Java 2023年5月29日
    078
  • Java绘图基础

    Graphics 绘图类 Graphic是一个抽象的画笔对象,可以在组件上绘制丰富多彩的几何图形和位图。Graphics类封装了Java支持的基本绘图操作所需的属性,主要包括 颜色…

    Java 2023年6月9日
    064
  • virtual box入门使用+踩坑

    事实上我并不是完全安装上面步骤进行安装,在vagrant 使用上,我选择的是使用命令行 进行虚拟机配置。 安装完virtual后,记得把虚拟机存储路径变为非C盘。不然C盘分分钟爆炸…

    Java 2023年6月7日
    072
  • 总结一下今天所学的知识9.18

    一种是将client和controller层实现一个共同的接口 — 这种方式的话耦合度非常高,而且形参中的注解不会被继承,所以controller中仍然需要注明形参列表…

    Java 2023年6月15日
    063
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球