Spring Rest Client之RestTemplate

本文介绍了如何在Spring框架中使用RestTemplate进行GET、POST、PUT、DELETE等RESTfulAPI操作,包括JSON格式处理、POJO转换、头信息获取,以及如何使用WebClient替代RestTemplate,并讨论了超时时间和请求工厂的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

概述

使用GET方式获取资源

通过普通的JSON格式

通过POJO方式

使用Head去获取header

使用POST方式去创建资源

postForObject()

exchange()

提交表单

使用OPTION获取可操作的类型 

使用PUT来更新资源

使用DELETE来删除资源

设置超时时间


概述

本篇文章将介绍如何使用RestTemplate,需要注意的是新版的spring framework,由于有WebFlux的加持,Spring提供了一个新版的Rest Client,叫做WebClient,用来替代RestTemplate,WebClient可以提供传统RestTemplate的同步调用,也可以提供异步非阻塞的方式调用。如果你在构建一个新的服务或者在进行系统升级,考虑使用WebClient,因为在之后的版本中spring将会逐步弃用RestTemplate。

使用GET方式获取资源

通过普通的JSON格式

一个最简单的例子就是通过getForEntity(),可以获取到返回的所有内容

RestTemplate restTemplate = new RestTemplate();
String fooResourceUrl
  = "http://localhost:8080/spring-rest/foos";
ResponseEntity<String> response
  = restTemplate.getForEntity(fooResourceUrl + "/1", String.class);
Assertions.assertEquals(response.getStatusCode(), HttpStatus.OK);

如果我们需要响应中的某些字段,则需要使用Jackson包去解析字符串

ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(response.getBody());
JsonNode name = root.path("name");
Assertions.assertNotNull(name.asText());

通过POJO方式

如果我们只关心返回消息体内容,我们使用POJO方式,则需要有一个DTO,用来转化资源格式。

public class Foo implements Serializable {
    private long id;

    private String name;
    // getters and setters
}
Foo foo = restTemplate
  .getForObject(fooResourc
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值