RestTemplate的DELETE及PUT等请求方法使用精讲

目录
  • 一、RESTful风格与HTTPmethod
  • 二、使用DELETE方法去删除资源
  • 三、使用PUT方法去修改资源
  • 三、通用请求方法exchange方法
  • 四、使用HEAD方法获取HTTP请求头数据
  • 五、使用OPTIONS获取HTTP资源支持的method

本文是精讲RestTemplate第5篇,前篇的blog访问地址如下:

RestTemplate在Spring或非Spring环境下使用精讲

RestTemplate实现多种底层HTTP客户端类库的切换用法

RestTemplate发送HTTP GET请求使用方法详解

RestTemplate发送HTTP POST请求使用方法详解

为了方便后续开发测试,首先介绍一个网站给大家。JSONPlaceholder是一个提供免费的在线REST API的网站,我们在开发时可以使用它提供的url地址测试下网络请求以及请求参数。或者当我们程序需要获取一些模拟数据、模拟图片时也可以使用它。

一、RESTful风格与HTTP method

熟悉RESTful风格的朋友,应该了解RESTful风格API使用HTTP method表达对资源的操作。

常用HTTP方法 RESTful风格语义(操作)
GET 查询、获取数据
POST 新增、提交数据
DELETE 删除数据
PUT 更新、修改数据
HEAD 获取HTTP请求头数据
OPTIONS 判断URL提供的当前API支持哪些HTTP method方法

在前面的章节,我已经为大家详细的介绍了RestTemplate的GET和POST的相关的使用方法,本节来为大家介绍DELETE、PUT、HEAD、OPTIONS。

二、使用 DELETE方法去删除资源

删除一个已经存在的资源,使用RestTemplate的delete(uri)方法。该方法会向URL代表的资源发送一个HTTP DELETE方法请求。

@Test
void testDelete()  {
   String url = "http://jsonplaceholder.typicode.com/posts/1";
   restTemplate.delete(url);
}

在前面章节测试类的基础上,写如上代码的测试用例。上面代码含义为删除posts列表里面的第1个帖子。

三、使用PUT方法去修改资源

修改一个已经存在的资源,使用RestTemplate的put()方法。该方法会向URL代表的资源发送一个HTTP PUT方法请求。

@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方法

exchange方法是一个通用的方法,它可以发送GET、POST、DELETE、PUT等等HTTP方法请求。

下面的两种方式发送GET请求效果是一样的

//使用getForEntity发送GET请求
ResponseEntity<PostDTO> responseEntity
            = restTemplate.getForEntity(url, PostDTO.class);
//使用exchange发送GET请求
ResponseEntity<PostDTO> responseEntity = restTemplate.exchange(url, HttpMethod.GET,
            null, PostDTO.class);

下面的两种方式发送POST请求效果是一样的

// 使用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请求效果是一样的,只是一个有返回值,一个返回值为void

// 使用delete发送DELETE请求,返回值为void
restTemplate.delete(url);
// 使用exchange发送DELETE请求
ResponseEntity<String> result = restTemplate.exchange(url, HttpMethod.DELETE,null,String.class);

上面为大家举了几个用exchange()发送请求的例子,exchange()还能针对很多的HTTP method类型发送请求,是通用方法!

四、使用HEAD方法获取HTTP请求头数据

使用*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);
}

请求头信息输出打印结果如下

五、使用OPTIONS获取HTTP资源支持的method

下文代码使用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)));
}

以上就是RestTemplate的DELETE及PUT等请求方法使用精讲的详细内容,更多关于RestTemplate的DELETE及PUT等请求用法的资料请关注我们其它相关文章!

(0)

相关推荐

  • Spring远程调用HttpClient/RestTemplate的方法

    一.HttpClient 两个系统间如何互相访问?两个tomcat上的项目如何互相访问? 采用HttpClient实现跨系统的接口调用. 介绍: 官网:http://hc.apache.org/index.html 现在也叫:HttpComponents HttpClient可以发送get.post.put.delete....等请求 使用: 导入坐标 <dependency> <groupId>org.apache.httpcomponents</groupId> &

  • Spring RestTemplate基本使用介绍

      上篇文件介绍Eureka服务的文章中,我们介绍到consumer从Eureka中通过LoadBalancerClient获取到服务端地址信息后通过RestTemplate来远程调用服务的场景,本文来具体介绍下RestTemplate的使用 RestTemplate   SpringRestTemplate是Spring 提供的用于访问 Rest 服务的客端, RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率,所以很多客户端比如Android或者第

  • Spring RestTemplate具体使用详解

    1.什么是REST? REST(RepresentationalState Transfer)是Roy Fielding 提出的一个描述互联系统架构风格的名词.REST定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的Web 服务,包括使用不同语言编写的客户端如何通过 HTTP处理和传输资源状态. 为什么称为 REST?Web本质上由各种各样的资源组成,资源由URI 唯一标识.浏览器(或者任何其它类似于浏览器的应用程序)将展示出该资源的一种表现方式,或者一种表现状态.如果用户在该页

  • springboot集成RestTemplate及常见的用法说明

    目录 一.背景介绍 1.什么是RestTemplate? 2.RestTemplate的优缺点 二.配置RestTemplate 1.引入依赖 2.连接池配置 3.初始化连接池 4.使用示例 三.RestTemplate常用方法 1.getForEntity 2.getForObject 3.postForEntity 4.postForObject 5.postForLocation 6.PUT请求 7.DELETE请求 一.背景介绍 在微服务都是以HTTP接口的形式暴露自身服务的,因此在调用

  • Spring学习笔记之RestTemplate使用小结

    前言 作为一个Java后端,需要通过HTTP请求其他的网络资源可以说是一个比较常见的case了:一般怎么做呢? 可能大部分的小伙伴直接捞起Apache的HttpClient开始做,或者用其他的一些知名的开源库如OkHttp, 当然原生的HttpURLConnection也是没问题的 本篇博文则主要关注点放在Sprig的生态下,利用RestTemplate来发起Http请求的使用姿势 I. RestTempalate 基本使用 0. 目标 在介绍如何使用RestTemplate之前,我们先抛出一些

  • RestTemplate的DELETE及PUT等请求方法使用精讲

    目录 一.RESTful风格与HTTPmethod 二.使用DELETE方法去删除资源 三.使用PUT方法去修改资源 三.通用请求方法exchange方法 四.使用HEAD方法获取HTTP请求头数据 五.使用OPTIONS获取HTTP资源支持的method 本文是精讲RestTemplate第5篇,前篇的blog访问地址如下: RestTemplate在Spring或非Spring环境下使用精讲 RestTemplate实现多种底层HTTP客户端类库的切换用法 RestTemplate发送HTT

  • RestTemplate在Spring或非Spring环境下使用精讲

    目录 一.什么是RestTemplate? 二.非Spring环境下使用RestTemplate 三.Spring环境下使用RestTemplate 一.什么是 RestTemplate? RestTemplate是执行HTTP请求的同步阻塞式的客户端,它在HTTP客户端库(例如JDK HttpURLConnection,Apache HttpComponents,okHttp等)基础封装了更加简单易用的模板方法API.也就是说RestTemplate是一个封装,底层的实现还是java应用开发中

  • RestTemplate请求失败自动重启机制精讲

    目录 前言 一.SpringRetry配置生效 二.使用案例 三.测试结果 前言 本文是精讲RestTemplate第8篇,前篇的blog访问地址如下: RestTemplate在Spring或非Spring环境下使用精讲 RestTemplate实现多种底层HTTP客户端类库的切换用法 RestTemplate发送HTTP GET请求使用方法详解 RestTemplate发送HTTP POST请求使用方法详解 RestTemplate的DELETE及PUT等请求方法使用精讲 RestTempl

  • RestTemplate使用代理作为跳板发送请求

    目录 本文是精讲RestTemplate第10篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换精讲RestTemplate第3篇-GET请求使用方法详解精讲RestTemplate第4篇-POST请求方法使用详解精讲RestTemplate第5篇-DELETE.PUT等请求方法使用详解精讲RestTemplate第6篇-文件上传下载与大文件流式下载精讲RestTe

  • Jquery Ajax请求方法小结(值得收藏)

    jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯. 废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果要处理复杂的逻辑,还是需要用到jQuery.ajax()的(这个后面会说到). 1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) :

  • 简单介绍HTTP请求方式中8种请求方法

    简单介绍 HTTP是超文本传输协议,其定义了客户端与服务器端之间文本传输的规范.HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的.当我们没有指定端口访问时,浏览器会默认帮我们添加80端口.我们也可以自己指定访问端口如:http://www.ip138.com:80. 需要注意的是,现在大多数访问都使用了HTTPS协议,而HTTPS的默认端口为443,如果使用80端口访问HTTPS协议的服务器可能会被拒绝. HTTP请求的方法:HTTP/1.1协议中共定义了八种

  • vue 组件的封装之基于axios的ajax请求方法

    如下所示: import Vue from 'vue' let service = { url: 'http://host.xxxxx.com/xxx.php' } service.ajaxReuqest = (url, options, type, fileFlag) => { for (const i in options) { if (!options[i] && options[i] !== 0 && (options[i].length &&

  • Python爬虫HTPP请求方法有哪些

    HTTP请求方法 GET:请求指定的页面信息,并返回实体主体. HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中.POST请求可能会导致新的资源的建立和/或已有资源的修改. PUT:从客户端向服务器传送的数据取代指定的文档的内容. DELETE:请求服务器删除指定的页面. CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器. OPTIONS:允许客户端

  • 在实战中可能碰到的几种ajax请求方法详解

    前言 最近在做一个针对单个节点测速的功能页面,测速的逻辑是,测上传速度时,前端传5m数据给server,记录上传和返回数据的时间,测下载速度时,从server下载1m的数据,记录下载和下载成功的时间,上传和下载用的是ajax同步以避免客户端带宽阻塞的问题,并进行3次取平均值.在开发过程过,因为ajax同步异步的问题,走了不少弯路,特地也把之前遇到的业务逻辑整理汇总一下. ajax请求方法如下 一.普通的ajax,async即同步异步处理,success之后,会有data返回值,status请求状

  • 深入理解jquery跨域请求方法

    项目中关于ajax jsonp的使用, 出现了问题:可以成功获得请求结果,但没有执行success方法 总算搞定了,记录一下 function TestAjax() { $.ajax({ type : "get", async : false, url : "ajaxHandler.ashx", //实际上访问时产生的地址为: ajax.ashx?callbackfun=jsonpCallback&id=10 data : {id : 10}, cache

随机推荐