SpringBoot中RestTemplate的使用备忘

这篇具有很好参考价值的文章主要介绍了SpringBoot中RestTemplate的使用备忘。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringBoot中RestTemplate的使用备忘

1. 基本介绍

1,什么是 RestTemplate?1RestTemplateSpring 提供的用于访问 Rest 服务的客户端,RestTemplate 提供了多种可以便捷访问远程 Http 服务的方法,能够大大提高客户端的编写效率。

			RestTemplateSpring3 中引入的同步阻塞式 HTTP 客户端。根据 Spring 官方文档介绍,在将来的版本中它可能会被弃用,因已在 Spring5 中引入了 WebClient 作为非阻塞式 Reactive HTTP 客户端。

	(2RestTemplate 定义了 36 个与 REST 资源交互的方法,其中的大多数都对应于 HTTP 的方法。
	注意:
		严格来说只有 11 个独立的方法,其中有 10 个有三种重载形式,
				而第 11 个则重载了 6 次,这样一共形成了 36 个方法。
		实际上,由于 Post 操作的非幂等性,它几乎可以代替其他的 CRUD 操作。
	// 方法列表如下:
	delete():这个方法是在特定的 URL 上对资源执行 HTTP DELETE 操作
	exchange():在 URL 上执行特定的 HTTP 方法,返回包含对象的 ResponseEntity,这个对象是从响应体中映射得到的
	execute():在 URL 上执行特定的 HTTP 方法,返回一个从响应体映射得到的对象
	getForEntity():发送一个 HTTP GET 请求,返回的 ResponseEntity 包含了响应体所映射成的对象
	getForObject():发送一个 HTTP GET 请求,返回的请求体将映射为一个对象
	postForEntity():POST 数据到一个 URL,返回包含一个对象的 ResponseEntity,这个对象是从响应体中映射得到的
	postForObject():POST 数据到一个 URL,返回根据响应体匹配形成的对象
	headForHeaders():发送 HTTP HEAD 请求,返回包含特定资源 URL 的 HTTP 头
	optionsForAllow():发送 HTTP OPTIONS 请求,返回对特定 URL 的 Allow 头信息
	postForLocation():POST 数据到一个 URL,返回新创建资源的 URL
	put():PUT 资源到特定的 URL

2. 安装配置

2-1 引入Maven依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2-2 创建 RestTemplate 配置类,设置连接池大小、超时时间、重试机制等等。

@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate(ClientHttpRequestFactory factory){
        return new RestTemplate(factory);
    }
 
    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setConnectTimeout(15000); // 连接超时
        factory.setReadTimeout(5000); // 数据读取超时时间
        return factory;
    }
}

3. 使用示例

@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public String test() {
    	// 发起Get请求,获取接口返回的字符串
        String url = "http://jsonplaceholder.typicode.com/posts/1";
        return restTemplate.getForObject(url, String.class);
    }
}

4 GET 请求1:getForObject() 方法的使用

4-1 使用示例

// 		2-1 测试用的实体Bean
@Getter
@Setter
@ToString
public class PostBean {
    private int userId;
    private int id;
    private String title;
    private String body;
}
// getForObject() 用于发送一个 HTTP GET 请求。它和 getForEntity() 用法几乎相同。
//		区别在于 getForObject() 返回值返回的是响应体,省略了很多 response 的信息。

// 示例1. 获取 String 结果数据
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        String url = "http://jsonplaceholder.typicode.com/posts/1";
        String str = restTemplate.getForObject(url, String.class);
        System.out.println(str);
        return;
    }
}

// 示例2. 将结果转换为对象
//		由于 getForObject() 包含了将 HTTP 结果转成 POJO 的功能,所以我们可以将其转换成自定义的实体类对象
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        String url = "http://jsonplaceholder.typicode.com/posts/1";
        PostBean postBean = restTemplate.getForObject(url, PostBean.class);
        System.out.println(postBean.toString());
        return;
    }
}

// 示例3. 将结果转成数组,如下实例返回对象数组
//		假设接口返回的是一个 json 数组--实体对应上述的PostBean :
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        String url = "http://jsonplaceholder.typicode.com/posts";
        PostBean[] arr = restTemplate.getForObject(url, PostBean[].class);
        System.out.println("结果数:" + arr.length);
        return;
    }
}

4-2 参数传递的几种方式

// 1. 使用占位符的形式传递参数:
String url = "http://jsonplaceholder.typicode.com/{1}/{2}";
PostBean postBean = restTemplate.getForObject(url, PostBean.class, "posts", 1);

// 2. 另一种使用占位符的形式,填充变量:
String url = "http://jsonplaceholder.typicode.com/{type}/{id}";
String type = "posts";
int id = 1;
PostBean postBean = restTemplate.getForObject(url, PostBean.class, type, id);

// 3. 使用 map装载参数:
String url = "http://jsonplaceholder.typicode.com/{type}/{id}";
Map<String,Object> map = new HashMap<>();
map.put("type", "posts");
map.put("id", 1);
PostBean postBean = restTemplate.getForObject(url, PostBean.class, map);

5 GET 请求2:getForEntity() 方法的使用

5-1 使用示例

getForEntity() 同样用于发送一个 HTTP GET 请求。它和 getForObject() 用法几乎相同。
		区别在于 getForEntity() 返回的是 ResponseEntityResponseEntitySpring 对 HTTP 请求响应的封装,包括了几个重要的元素,
		如响应码、contentType、contentLength、响应消息体等。
		其中响应消息体可以通过 ResponseEntity 对象的 getBody() 来获取。

// 示例1 -- 返回字符串
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        String url = "http://jsonplaceholder.typicode.com/posts/5";
        ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
        String body = responseEntity.getBody(); // 获取响应体
        HttpStatus statusCode = responseEntity.getStatusCode(); // 获取响应码
        int statusCodeValue = responseEntity.getStatusCodeValue(); // 获取响应码值
        HttpHeaders headers = responseEntity.getHeaders(); // 获取响应头
 
        System.out.println("body:" + body);
        System.out.println("statusCode:" + statusCode);
        System.out.println("statusCodeValue:" + statusCodeValue);
        System.out.println("headers:" + headers);
        return;
    }
}

// 示例2 -- 将消息体转换为对象
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        String url = "http://jsonplaceholder.typicode.com/posts/5";
        ResponseEntity<PostBean> responseEntity = restTemplate.getForEntity(url, PostBean.class);
        PostBean postBean = responseEntity.getBody(); // 获取响应体,其他的参数获取,参考示例1
        System.out.println(postBean);
        return;
    }
}

// 示例3 -- 将结果转成数组,本例返回对象数组
@RestController
public class HelloController { 
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        String url = "http://jsonplaceholder.typicode.com/posts";
        ResponseEntity<PostBean[]> responseEntity = restTemplate.getForEntity(url, PostBean[].class);
        PostBean[] arr = responseEntity.getBody(); // 获取响应体
        System.out.println("结果数:" + arr.length);
        return;
    }
}		

5-2 参数传递的几种方式

// 1. 使用占位符的形式传递参数:
String url = "http://jsonplaceholder.typicode.com/{1}/{2}";
ResponseEntity<PostBean> responseEntity = restTemplate.getForEntity(url, PostBean.class, "posts", 1);

// 2. 另一种使用占位符的形式,填充变量:
String url = "http://jsonplaceholder.typicode.com/{type}/{id}";
String type = "posts";
int id = 1;
ResponseEntity<PostBean> responseEntity = restTemplate.getForEntity(url, PostBean.class, type, id);

// 3. 使用 map装载参数:
String url = "http://jsonplaceholder.typicode.com/{type}/{id}";
Map<String,Object> map = new HashMap<>();
map.put("type", "posts");
map.put("id", 1);
ResponseEntity<PostBean> responseEntity = restTemplate.getForEntity(url, PostBean.class, map);

6 POST 请求1:postForObject() 方法的使用

6-1 使用示例

postForObject() 用于发送一个 HTTP POST 请求。它和 postForEntity() 用法几乎相同。
		区别在于 postForObject() 返回值返回的是响应体,省略了很多 response 的信息。

// 示例1 -- 发送一个 JSON 格式数据,
//		直接将对象当作参数扔进方法postForObject中即可
//			Bean 对象实际上会转成 JSON 数据提交:
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        // 请求地址
        String url = "http://jsonplaceholder.typicode.com/posts";
 
        // 要发送的数据对象
        PostBean postBean = new PostBean();
        postBean.setUserId(222);
        postBean.setTitle("abc");
        postBean.setBody("航歌");
 
        // 发送post请求,并输出结果
        String result = restTemplate.postForObject(url, postBean, String.class);
        System.out.println(result);
        return;
    }
}

// 示例2 -- 使用 Form 表单的形式提交数据
//		使用 POST 方式发送 multipart/form-data 格式的数据:
//			最终会通过 form 表单方式提交数据
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        // 请求地址
        String url = "http://jsonplaceholder.typicode.com/posts";
 
        // 请求头设置
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
 
        //提交参数设置
        MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
        map.add("title", "abc");
        map.add("body", "航歌");
 
        // 组装请求体
        HttpEntity<MultiValueMap<String, String>> request =
                new HttpEntity<MultiValueMap<String, String>>(map, headers);
 
        // 发送post请求,并输出结果
        String result = restTemplate.postForObject(url, request, String.class);
        System.out.println(result);
        return;
    }
}

// 上述示例是将响应结果以 String 形式接收,
//		还可以自动将响应结果转成自定的对象或则数组。具体同Get请求类型转换一致:		

6-2 设置 url 参数,同Get请求

7 POST 请求2:postForEntity()方法的使用

7-1 使用示例,和postForObject()基本相似,返回的是ResponseEntity罢了

postForEntity() 用于发送一个 HTTP POST 请求。它和上面的 postForObject() 用法几乎相同。
	区别在于 getForEntity() 返回的是 ResponseEntityResponseEntitySpring 对 HTTP 请求响应的封装,包括了几个重要的元素,
	如响应码、contentType、contentLength、响应消息体等。 
	其中响应消息体可以通过 ResponseEntity 对象的 getBody() 来获取。

// 示例1 -- 发送一个 JSON 格式数据
@RestController
public class HelloController {
 
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        // 请求地址
        String url = "http://jsonplaceholder.typicode.com/posts";
 
        // 要发送的数据对象
        PostBean postBean = new PostBean();
        postBean.setUserId(222);
        postBean.setTitle("abc");
        postBean.setBody("航歌");
 
        // 发送post请求,并输出结果
        ResponseEntity<String> responseEntity
                = restTemplate.postForEntity(url, postBean, String.class);
        String body = responseEntity.getBody(); // 获取响应体
        HttpStatus statusCode = responseEntity.getStatusCode(); // 获取响应码
        int statusCodeValue = responseEntity.getStatusCodeValue(); // 获取响应码值
        HttpHeaders headers = responseEntity.getHeaders(); // 获取响应头
 
        System.out.println("body:" + body);
        System.out.println("statusCode:" + statusCode);
        System.out.println("statusCodeValue:" + statusCodeValue);
        System.out.println("headers:" + headers);
        return;
    }
}

7-2 设置 url 参数,同Get请求

8 POST 请求3:postForLocation() 方法的使用,返回的是 Uri

1postForLocation() 也是通过 Post 方式提交新资源,
		postForLocation() 方法的参数和前面两种(postForObject、postForEntity)的参数基本一致。
2)区别在于 postForLocation() 方法的返回值为 Uri,这个只需要服务提供者返回一个 Uri 即可,
		该 Uri 表示新资源的位置。

// 示例: 比如登录或者注册都是 post 请求,
//		而这些操作完成之后大部分都是跳转到别的页面去了。
//		这种场景下,就可以使用 postForLocation 了,提交数据,并获取返回的 URI。		
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        // 请求地址
        String url = "http://jsonplaceholder.typicode.com/posts";
 
        // 要发送的数据对象
        MultiValueMap<String, String> request = new LinkedMultiValueMap<>();
        request.add("username", "hangge");
        request.add("password", "123456");
 
        // 发送post请求,并输出结果
        URI uri = restTemplate.postForLocation(url, request);
        System.out.println(uri);
        return;
    }
}

9 通用请求方法:exchange

9-1 介绍

1)exchange 的用法同前面介绍的 getForEntity、postForEntity 差不多,且返回的都是 ResponseEntityResponseEntitySpring 对 HTTP 请求响应的封装,包括了几个重要的元素,
	如响应码、contentType、contentLength、响应消息体等。
	其中响应消息体可以通过 ResponseEntity 对象的 getBody() 来获取。
2)不同在于 exchange 方法提供统一的方法模板,可以通过指定不同的 HTTP 请求类型,实现 POST、PUT、DELETE、GET 四种请求。

9-2 Get 请求示例

// 使用 Get 请求,并将响应体、响应头、响应码打印出来。其中响应体的类型为 String。
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        String url = "http://jsonplaceholder.typicode.com/posts/5";
        ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET,
                null, String.class);
        String body = responseEntity.getBody(); // 获取响应体
        HttpStatus statusCode = responseEntity.getStatusCode(); // 获取响应码
        int statusCodeValue = responseEntity.getStatusCodeValue(); // 获取响应码值
        HttpHeaders headers = responseEntity.getHeaders(); // 获取响应头
 
        System.out.println("body:" + body);
        System.out.println("statusCode:" + statusCode);
        System.out.println("statusCodeValue:" + statusCodeValue);
        System.out.println("headers:" + headers);
        return;
    }
}

9-3 Post 请求示例

// 使用 post 方式发送一个 JSON 格式的数据,并将响应体、响应头、响应码打印出来。其中响应体的类型设置为 String
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        // 请求地址
        String url = "http://jsonplaceholder.typicode.com/posts";
 
        // 请求头设置
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
 
        //提交参数设置
        MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
        map.add("userId", "222");
        map.add("title", "abc");
        map.add("body", "航歌");
 
        // 组装请求体
        HttpEntity<MultiValueMap<String, String>> request =
                new HttpEntity<MultiValueMap<String, String>>(map, headers);
 
        // 发送post请求,并输出结果
        ResponseEntity<String> responseEntity
                = restTemplate.exchange(url, HttpMethod.POST, request, String.class);
        String body = responseEntity.getBody(); // 获取响应体
        HttpStatus statusCode = responseEntity.getStatusCode(); // 获取响应码
        int statusCodeValue = responseEntity.getStatusCodeValue(); // 获取响应码值
        HttpHeaders responseHeaders = responseEntity.getHeaders(); // 获取响应头
 
        System.out.println("body:" + body);
        System.out.println("statusCode:" + statusCode);
        System.out.println("statusCodeValue:" + statusCodeValue);
        System.out.println("headers:" + responseHeaders);
        return;
    }
}

10 文件下载

10-1 简单的文件下载

1)最简单的下载文件方式就是使用的是 restTemplate 调用 getForEntity 获取到字节数组,
	再将字节数组通过 java8 的 Files 工具类的 write 方法,直接写到目标文件。
	
​ 	缺点:由于需要将文件的字节数组全部放入内存中,极其消耗资源。
	当遇到大文件时,内存加载可能会造成 OutOfMemoryError2)下面是一个简单的示例,下载一个网络上的图片并保存到本地。
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        // 记录下开始下载时的时间
        Instant now = Instant.now();
        // 待下载的文件地址
        String url = "http://www.hangge.com/blog/images/logo.png";
        ResponseEntity<byte[]> rsp = restTemplate.getForEntity(url, byte[].class);
        System.out.println("状态码:" + rsp.getStatusCode());
        try {
            // 将下载下来的文件内容保存到本地
            String targetPath = "/Users/hangge/Desktop/logo.png";
            Files.write(Paths.get(targetPath), Objects.requireNonNull(rsp.getBody(),
                    "未获取到下载文件"));
        } catch (IOException e) {
            System.out.println("文件写入失败:" + e.getMessage());
        }
        System.out.println("文件下载完成,耗时:" + ChronoUnit.MILLIS.between(now, Instant.now())
                + " 毫秒");
        return;
    }
}

10-2 大文件的下载

// 对于大文件的下载,建议使用流的方式来解决。
//	即每次接收到一部分数据就直接写入到文件。比如使用 Files 的 copy 方法来处理流。
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        // 记录下开始下载时的时间
        Instant now = Instant.now();
        // 待下载的文件地址
        String url = "http://www.hangge.com/blog/images/logo.png";
        // 文件保存的本地路径
        String targetPath = "/Users/hangge/Desktop/logo.png";
        //定义请求头的接收类型
        RequestCallback requestCallback = request -> request.getHeaders()
                .setAccept(Arrays.asList(MediaType.APPLICATION_OCTET_STREAM, MediaType.ALL));
        //对响应进行流式处理而不是将其全部加载到内存中
        restTemplate.execute(url, HttpMethod.GET, requestCallback, clientHttpResponse -> {
            Files.copy(clientHttpResponse.getBody(), Paths.get(targetPath));
            return null;
        });
        
        System.out.println("文件下载完成,耗时:" + ChronoUnit.MILLIS.between(now, Instant.now())
                + " 毫秒");
        return;
    }
}

11 文件上传

11-1 示例

1)下面通过样例演示如何使用 RestTemplate 上传文件。
	这里使用 Form 表单的方式进行提交,上传时除了一个文件外还附带有两个自定义参数。
2)接收端收到文件后会打印出相关参数、以及文件相关数据,并返回成功信息。
3)发送方收到反馈后将反馈信息打印出来:

// 简单的示例,如要进一步操作,比如:文件重命名、文件保存、相关上传参数的配置等自己完善哈
// 1. 文件发送端代码:
@RestController
public class HelloController {
    @Autowired
    private RestTemplate restTemplate;
 
    @GetMapping("/test")
    public void test() {
        // 上传接口
        String url = "http://localhost:8080/upload";
        // 待上传的文件
        String filePath = "/Users/hangge/Desktop/test.txt";
 
        // 封装请求参数
        FileSystemResource resource = new FileSystemResource(new File(filePath));
        MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
        param.add("myFile", resource);
        param.add("param1", "12345");
        param.add("param2", "hangge");
 
        // 发送请求并输出结果
        System.out.println("--- 上传文件 ---");
        String s = restTemplate.postForObject(url, param, String.class);
        System.out.println(s);
    }
}


// 2. 接收端代码:  
@RestController
public class HelloController {
    @PostMapping("/upload")
    public String upload(String param1, String param2, MultipartFile myFile) {
        System.out.println("--- 接收文件 ---");
        System.out.println("param1:" + param1);
        System.out.println("param2:" + param2);
        String originalFilename = myFile.getOriginalFilename();
        System.out.println("文件原始名称:" + originalFilename);
        try {
            String string = new String(myFile.getBytes(), "UTF-8");
            System.out.println("文件内容:" + string);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 处理文件内容...
        return "OK";
    }
}


文章来源地址https://www.toymoban.com/news/detail-433448.html

到了这里,关于SpringBoot中RestTemplate的使用备忘的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot 使用 RestTemplate 发送 binary 数据流

    情况说明: 接口A接受到一个数据流,在postman里的传输方式显示如下: 接口A接受到这个数据流之后,需要转发到接口B进行处理。 这里要注意一点是: postman图中的这种方式和MultipartFile流的传输方式不同,MultipartFile流方式,是在body的form表单中进行传输,需要指定一个key,这

    2024年02月12日
    浏览(34)
  • SpringBoot | RestTemplate异常处理器ErrorHandler使用详解

    关注wx:CodingTechWork   在代码开发过程中,发现很多地方通过 RestTemplate 调用了第三方接口,而第三方接口需要根据某些状态码或者异常进行重试调用,此时,要么在每个调用的地方进行异常捕获,然后重试;要么在封装的 RestTemplate 工具类中进行统一异常捕获和封装。当然

    2024年02月12日
    浏览(36)
  • SpringBoot之RestTemplate使用Apache的HttpClient连接池

    SpringBoot自带的RestTemplate是没有使用连接池的,只是SimpleClientHttpRequestFactory实现了ClientHttpRequestFactory、AsyncClientHttpRequestFactory 2个工厂接口,因此每次调用接口都会创建连接和销毁连接,如果是高并发场景下会大大降低性能。因此,我们可以使用Apache的HttpClient连接池。

    2024年02月11日
    浏览(31)
  • SpringBoot中RestTemplate和WebClient的使用区别及优缺点含完整代码

    点击下载《SpringBoot中RestTemplate和WebClient的使用区别及优缺点含完整代码》 本文将深入探讨Spring Boot中RestTemplate和WebClient的用法、区别和优缺点。通过具体的代码示例,我们将详细解释这两种HTTP客户端的使用方法,并分析它们在不同场景下的适用性。 RestTemplate是Spring框架中用

    2024年02月19日
    浏览(32)
  • SpringBoot RestTemplate详解

    参考自:http://events.jianshu.io/p/477e7a3179c6 大家都知道在SpringBoot中一般适用RestTemplate来进行远程调用,那么SpringBoot中如何默认配置RestTemplate,以及如何自定义配置自己的RestTemplate,RestTemplate异步请求如何实现等 RestTemplate是Spring提供的进行远程调用客户端 RestTemplate提供了很多远

    2024年02月06日
    浏览(31)
  • springboot(39) : RestTemplate完全体

            HTTP请求调用集成,支持GET,POST,JSON,Header,文件上传调用,日志打印,请求耗时计算,设置中文编码 需要安装lombok插件  

    2024年02月14日
    浏览(35)
  • SpringBoot整合RestTemplate用法讲解(完整详细)

    前言:本篇主要介绍了RestTemplate中的GET,POST,PUT,DELETE、文件上传和文件下载6大常用的功能,每一个方法和每一行代码都进行了详细的讲解,代码都是亲自测试过的,整篇博客写完以后自己也是受益匪浅,于是在这做个技术分享! 目录 一、RestTemplate简介 二、基础配置 2.1、

    2024年02月12日
    浏览(23)
  • Springboot -- 用更优雅的方式发HTTP请求(RestTemplate详解)

    RestTemplate 是 Spring 提供的用于访问Rest服务的客户端, RestTemplate 提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。 我之前的HTTP开发是用apache的HttpClient开发,代码复杂,还得操心资源回收等。代码很复杂,冗余代码多,稍微截个图,这是我封装好的一

    2024年02月02日
    浏览(32)
  • 【Spring Cloud系列】- RestTemplate使用详解

    RestTemplate是Spring框架提供用于调用Rest接口的一个应用,它简化了与http服务通信方式。RestTemplate统一Restfull调用的标准,封装HTTP链接,只要需提供URL及返回值类型即可完成调用。相比传统的HttpClient与Okhttp,RestTemplate是一种优雅,简洁调用RESTfull服务的方式。 RestTemplate默认依赖

    2024年02月08日
    浏览(40)
  • java使用RestTemplate发送Get请求

    使用RestTemplate的 getForObject() 或 getForEntity() , getForObject() 只有响应体, getForEntity() 包含HTTP响应的全部信息,以常用的 getForObject() 为例: 传入两个参数:1. url 2. 响应数据类型 这里演示了以字符串形式接收get响应的例子: 需要注意的是,当get请求的接口响应的 Content-Type 是

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包