本文是精讲RestTemplate第5篇,前篇的blog访问地址以下:html
为了方便后续开发测试,首先介绍一个网站给你们。 JSONPlaceholder是一个提供免费的在线REST API的网站,咱们在开发时可使用它提供的url地址测试下网络请求以及请求参数。或者当咱们程序须要获取一些模拟数据、模拟图片时也可使用它。
若是您阅读完本文章,以为对您有帮助,请帮忙点个赞,您的支持是我不竭的创做动力vue
熟悉RESTful风格的朋友,应该了解RESTful风格API使用HTTP method表达对资源的操做。java
经常使用HTTP方法 | RESTful风格语义(操做) |
---|---|
GET | 查询、获取数据 |
POST | 新增、提交数据 |
DELETE | 删除数据 |
PUT | 更新、修改数据 |
HEAD | 获取HTTP请求头数据 |
OPTIONS | 判断URL提供的当前API支持哪些HTTP method方法 |
在前面的章节,我已经为你们详细的介绍了RestTemplate的GET和POST的相关的使用方法,本节来为你们介绍DELETE、PUT、HEAD、OPTIONS。spring
删除一个已经存在的资源,使用RestTemplate的delete(uri)方法。该方法会向URL表明的资源发送一个HTTP DELETE方法请求。json
@Test void testDelete() { String url = "http://jsonplaceholder.typicode.com/posts/1"; restTemplate.delete(url); }
在前面章节测试类的基础上,写如上代码的测试用例。上面代码含义为删除posts列表里面的第1个帖子。后端
修改一个已经存在的资源,使用RestTemplate的put()方法。该方法会向URL表明的资源发送一个HTTP PUT方法请求。springboot
@Test void testPut() { // 请求地址 String url = "http://jsonplaceholder.typicode.com/posts/1"; // 要发送的数据对象(修改数据) PostDTO postDTO = new PostDTO(); postDTO.setUserId(110); postDTO.setTitle("zimug 发布文章"); postDTO.setBody("zimug 发布文章 测试内容"); // 发送PUT请求 restTemplate.put(url, postDTO); }
上面代码RESTful风格语义是:修改posts列表里面的第1个帖子。网络
exchange方法是一个通用的方法,它能够发送GET、POST、DELETE、PUT等等HTTP方法请求。前后端分离
//使用getForEntity发送GET请求 ResponseEntity<PostDTO> responseEntity = restTemplate.getForEntity(url, PostDTO.class); //使用exchange发送GET请求 ResponseEntity<PostDTO> responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, PostDTO.class);
// 使用postForEntity发送POST请求 ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, postDTO, String.class); // 使用exchange发送POST请求 ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST,null, String.class);
// 使用delete发送DELETE请求,返回值为void restTemplate.delete(url); // 使用exchange发送DELETE请求 ResponseEntity<String> result = restTemplate.exchange(url, HttpMethod.DELETE,null,String.class);
上面为你们举了几个用exchange()发送请求的例子,exchange()还能针对不少的HTTP method类型发送请求,是通用方法!微服务
使用headForHeaders()API 获取某个资源的URI的请求头信息,而且只专一于获取HTTP请求头信息。
@Test public void testHEAD() { String url = "http://jsonplaceholder.typicode.com/posts/1"; HttpHeaders httpHeaders = restTemplate.headForHeaders(url); //断言该资源接口数据为JSON类型 assertTrue(httpHeaders.getContentType() .includes(MediaType.APPLICATION_JSON)); System.out.println(httpHeaders); }
请求头信息输出打印结果以下
下文代码使用optionsForAllow测试该URL资源是否支持GET、POST、PUT、DELETE,即增删改查。
@Test public void testOPTIONS() { String url = "http://jsonplaceholder.typicode.com/posts/1"; Set<HttpMethod> optionsForAllow = restTemplate.optionsForAllow(url); HttpMethod[] supportedMethods = {HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, HttpMethod.DELETE}; //测试该url资源是否支持GET、POST、PUT、DELETE,即增删改查 assertTrue(optionsForAllow.containsAll(Arrays.asList(supportedMethods))); }
以为对您有帮助的话,帮我点赞、分享!您的支持是我不竭的创做动力! 。另外,笔者最近一段时间输出了以下的精品内容,期待您的关注。