RestTemplate用法

简介: RestTemplate用法

RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。RestTemplate 继承自 InterceptingHttpAccessor 并且实现了 RestOperations 接口,其中 RestOperations 接口定义了基本的 RESTful 操作,这些操作在 RestTemplate 中都得到了实现。


使用


1.新建 config.ApplicationContextConfig.java

@Configuration
public class ApplicationContextConfig {
    @Bean // applicationContext.xml <bean id="" class="">
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}


2.使用


@Resource
    private RestTemplate restTemplate;
    @GetMapping(value = "/consumer/payment/create")
    public CommonResult<Payment> create(Payment payment) {
        return restTemplate.postForObject(“http://localhost:8080” + "/payment/get/" + id, payment, CommonResult.class);
        // (url, requestMap, ResponseBean.class) 这三个参数分别代表
        // REST请求地址、请求参数、HTTP响应被转换成的对象类型
        // 支持的方法很多,不一一列举了
    }
    @GetMapping(value = "/consumer/payment/getForEntity/{id}")
    public CommonResult getpaymentlist2(@PathVariable("id") Long id) {
        ResponseEntity<CommonResult> entity = restTemplate.getForEntity(PAYMENT_URL + "/payment/get/" + id, CommonResult.class);
        if (entity.getStatusCode().is2xxSuccessful()){
          // log.info(entity.getHeaders());
            return entity.getBody();
        }else {
            return new CommonResult(444,"查询失败");
        }
    }


3.添加请求头和body

import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
private static String formUpload(){
    HttpHeaders httpHeaders = new HttpHeaders();
    httpHeaders.set("token","123");
    httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
     //  封装参数,千万不要替换为Map与HashMap,否则参数无法传递
    MultiValueMap<String, Object> multiValueMap = new LinkedMultiValueMap<>();
    multiValueMap.add("api_key", API_KEY);
    multiValueMap.add("api_secret", API_SECRET);
    HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(multiValueMap, httpHeaders);
    return restTemplate.postForObject(serverUrl, httpEntity, String.class);
}
相关文章
|
4月前
|
Java Spring
spring restTemplate 进行http请求的工具类封装
spring restTemplate 进行http请求的工具类封装
186 3
|
5月前
|
Java Spring
springboot使用RestTemplate(基于2.6.7,返回泛型)
springboot使用RestTemplate(基于2.6.7,返回泛型)
|
缓存
RestTemplate请求访问简单使用
RestTemplate请求访问简单使用
89 1
|
6月前
|
存储 前端开发 Java
Springboot使用参数解析器HandlerMethodArgumentResolver,解析请求头里的数据
HandlerMethodArgumentResolver 是 Spring MVC 中的一个接口,它允许你自定义方法参数的解析过程。当处理请求时,Spring MVC 需要将请求中的信息映射到控制器方法的参数上,而 HandlerMethodArgumentResolver 允许你在这个过程中进行自定义操作。
157 2
|
6月前
RestTemplate调用接口返回中文乱码
RestTemplate调用接口返回中文乱码
189 0
|
前端开发 Java Spring
|
Java Spring
Spring boot 封装的http调用工具 RestTemplate 代码简洁好用
经常会调用一些接口,需要自己写httpclient,后面会把java自带的调用例子补上。后来发现spring封装好了一工具比较实用,这里备忘一下,方便后面查阅和使用。后面还会更新一些新的内容。
676 0
|
JSON Java Apache
02、RestTemplate学习笔记
02、RestTemplate学习笔记
02、RestTemplate学习笔记
SpringCloud - RestTemplate的三种使用方式
SpringCloud - RestTemplate的三种使用方式
338 0
SpringCloud - RestTemplate的三种使用方式