Spring RestTemplate 之exchange方法
●exchange方法提供统一的方法模板进行四种请求:POST,PUT,DELETE,GET
(1)POST请求
String reqJsonStr = "{\"code\":\"testCode\", \"group\":\"testGroup\",\"content\":\"testContent\", \"order\":1}";
HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(reqJsonStr,headers);
ResponseEntity<Map> resp = restTemplate.exchange(DIC_DATA_URL, HttpMethod.POST, entity, Map.class);
(2)PUT请求
复制代码
String reqJsonStr = "{\"id\":227,\"code\":\"updateCC\", \"group\":\"UPDATE\",\"content\":\"updateCT\", \"order\":9}";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(reqJsonStr,headers);
ResponseEntity<Map> resp = restTemplate.exchange(DIC_DATA_URL, HttpMethod.PUT, entity, Map.class);
复制代码
(3)DELETE请求
ResponseEntity<Map> resp = restTemplate.exchange(DIC_DATA_URL + "?id={id}", HttpMethod.DELETE, null, Map.class, 227);
(4)GET请求
ResponseEntity<String> results = restTemplate.exchange(url,HttpMethod.GET, null, String.class, params);
说明:1)url: 请求地址;
2)method: 请求类型(如:POST,PUT,DELETE,GET);
3)requestEntity: 请求实体,封装请求头,请求内容
4)responseType: 响应类型,根据服务接口的返回类型决定
5)uriVariables: url中参数变量值
https://www.cnblogs.com/jnba/p/10522608.html
Demo
@SuppressWarnings("all")
public String sendPost(String url,Object param){
String jsonParam = JSON.toJSONString(param);
String accessToken = getAccessToken(jsonParam);
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("kye", kye);
requestHeaders.add("Content-Type", "application/json;charset=UTF-8");
requestHeaders.add("access-token", accessToken);
HttpEntity<String> requestEntity = new HttpEntity<String>(jsonParam, requestHeaders);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
String result = response.getBody();
return result;
}
分享到:
相关推荐
- 使用 `exchange()` 或 `execute()` 方法发起请求,这两个方法都需要提供一个 URI 和请求方法。 - 设置请求头和参数。 - 处理响应,如将响应体转换为所需的对象。 6. **在 Spring Boot 中使用 RestTemplate** ...
为了演示 RestTemplate 的使用,我们创建两个 Spring Boot 项目,一个 provider 作为 server 端,一个 consumer 作为服务调用方法。 API 方法介绍 RestTemplate 提供了多种 API 方法来访问远程 HTTP 服务,下面...
Spring Cloud RestTemplate 传递复杂参数的方式(多个对象) 在微服务架构中,服务之间的调用是一个非常重要的问题。Spring Cloud 提供了 Feign 接口调用和 RestTemplate 调用的方式。在这篇文章中,我们主要介绍了 ...
在使用Spring框架中的`RestTemplate`进行HTTP请求时,我们可能会遇到各种异常情况,如服务超时、服务不存在等,这些异常通常会导致程序中断,无法继续执行后续代码。在这种情况下,我们希望即使请求失败,也能获取到...
- **GET请求**:使用`exchange()`或`getForEntity()`方法。例如,获取JSON数据: ```java ResponseEntity<String> response = restTemplate.getForEntity(url, String.class); ``` - **POST请求**:使用`...
4. **发送请求**:使用`RestTemplate`的方法(如`exchange`, `getForObject`, `postForEntity`等)发送HTTP请求。例如,使用`getForObject`方法获取GET请求的响应。 ```java ResponseEntity<String> response = ...
该类使用 Spring 的 RestTemplate 类来调用 RESTful 服务。 GET 请求 GET 请求是最基本的 HTTP 请求方法,用于获取资源。RestTemplateUtil 中的 GetData 方法提供了 GET 请求的实现。该方法使用 RestTemplate 的 ...
虽然 RestTemplate 不直接支持 Hystrix,但你可以通过包装 RestTemplate 的方法调用来实现。创建一个类,里面包含对 RestTemplate 的包装,然后在方法上添加 `@HystrixCommand` 注解来启用断路器保护: ```java @...
RestTemplate 是 Spring 提供的一个用于发送 HTTP 请求的客户端工具,它可以方便地进行 GET、POST 等各种 HTTP 方法的操作。在涉及到需要身份验证的场景,比如 HTTP Basic Auth,RestTemplate 也能很好地支持。 ...
3. **构建请求**:使用RestTemplate的`exchange()`、`getForObject()`、`postForEntity()`等方法构造请求。例如,调用服务A的`/api/user`接口获取用户信息: ```java ResponseEntity<UserInfo> response = ...
在Spring Boot应用中,RestTemplate是一个非常实用的工具,它允许我们方便地与RESTful服务进行交互。本文将详细介绍如何使用RestTemplate提交表单数据,包括三种不同的方法,并讨论表单提交与Payload提交的区别。 ...
下面将详细讨论`RestTemplate`的核心概念、用途、使用方法以及其在实际开发中的应用。 `RestTemplate`是Spring的一个核心组件,它支持GET、POST、PUT、DELETE等HTTP操作,并提供了丰富的自定义选项以适应各种复杂的...
在Java开发中,`RestTemplate`是Spring框架提供的一种方便的发送HTTP请求的工具,可以用来执行GET、POST等各种HTTP方法,并处理响应。 首先,我们来详细了解GET和POST两种HTTP请求方法: 1. GET请求:GET是最常见...
对于POST请求,你可以使用`postForEntity`或`exchange`方法。例如,向服务器提交JSON数据: ```java HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); ...
在使用RestTemplate时,需要注意两个较为“灵活”的方法exchange和execute。 问题记录 在使用RestTemplate调用REST服务时,可能会遇到一些问题,如上传文件至分布式文件系统、处理带证书的https请求等。本文记录了...
3. **调用高德API**:使用RestTemplate的exchange、getForObject、postForEntity等方法发送GET或POST请求。对于查询IP所在地,高德API可能有一个URL,接收IP作为参数,返回地理位置信息。 ```java String ipAddress...
在"spring-android-samples"中,可以看到如何使用`RestTemplate`发送和接收JSON数据,如使用`exchange`方法配合`HttpEntity`对象发送JSON请求,以及解析JSON响应。 四、案例展示 "spring-android-samples-master...
`postForObject` 是`RestTemplate` 的核心方法之一,用于执行POST请求,并将响应转换为指定的对象。主要有两种使用方式: #### (1) 传入业务对象 ```java BaseUser baseUser = new BaseUser(); baseUser.setUserid...
在这个例子中,我们创建了一个`RestTemplate`实例,并通过`exchange`方法发送一个带有自定义头部的POST请求。需要注意的是,这里的请求是同步的,即程序会等待服务器响应完成后才会继续执行。 ##### 2. WebClient的...