GET请求:

  第一种:getForEntity:

    此方法返回的是ResponseEntity,该对象是Spring对HTTP请求响应的封装。

    RestTemplate rt = new RestTemplate();

    ResponseEntity<String> re = rt.getForEntity(uri,String.class);

    String body = re.getBody();

    或者:

    ResponseEntity<User> re = rt.getForEntity(uri,User.class);

    User body = re.getBody();

  此方法提供了三个不同的重载实现:

    1.getForEntity(String url,Class responseType,Object...urlVariables)

      其中responseType是指返回的类型,urlVariables是get请求的参数,为数组类型,数组中的值顺序要和url中参数顺序一致。比如:

      String url = http://USER-SERVICE/user.do?name={1}&age={2};

      urlVariables=["jason",26];

    2.getForEntity(String url,Class responseType,Map urlVariables)

      map中的key对应url中参数的名字,value对应参数的值。比如:

      String url = http://USER-SERVICE/user.do?param1={name} & param2={age};

      map.put("name","jason");

      map.put("age",26);

3.getForEntity(URI url,Class responseType)

该方法中使用URI代替了之前的url和urlVariables参数进行绑定。

第二种:getForObject:

此方法是对getForEntity的进一步的封装,实现请求直接返回包装好的对象内容。

RestTemplate rt = new RestTemplate();

String rs = rt.getForObject(uri,String.class);

或者:

User user = rt.getForObject(uri,User.class);

也提供了三个不同的重载实现,用法和上面的一样:

1.getForObject(String url,Class responseType,Object...urlVariables)

2.getForObject(String url,Class responseType,Map urlVariables)

3.getForObject(URI url,Class responseType)

POST请求:

第一种:postForEntity:

同GET请求一样,返回的是ResponseEntity<T>对象,其中T为请求相应的body的类型。

唯一不同的是request可以是普通对象,也可以是HttpEntity对象。

RestTemplate rt = new RestTemplate();

User user1 = new User("jason",26);

User user2 = rt.getForObject(url,user1,User.class);

也提供了三个不同的重载实现:

1.postForEntity(String url,Object request,Class responseType,Object...uriVariables);

2.postForEntity(String url,Object request,Class responseType,Map uriVariables);

3.postForEntity(URI url,Object request,Class responseType);

第二种:postForObject:

1.postForObject(String url,Object request,Class responseType,Object...uriVariables);

2.postForObject(String url,Object request,Class responseType,Map uriVariables);

3.postForObject(URI url,Object request,Class responseType);

第三种:postForLocation:

该方法实现了以POST请求提交资源,并返回新资源的URI对象,比如:

User user = new User("jason",26);

URI responseURI = restTemplate.postForLocation(url,user,);

三种重载方法:

1.postForLocation(String url,Object request,Object...uriVariables);

2.postForLocation(String url,Object request,Map uriVariables);

3.postForLocation(URI url,Object request);

PUT请求:

在RestTemaplate中,对PUT请求可以通过put方法进行调用。put方法返回值是void.

三种不同的重载方法:

put(String url,Object request,Object...urlVariable);

put(String url,Object request,Map urlVariable);

put(URI uri,Object request);

DELETE请求:

返回值为void.

delete(String url,Object...urlVariable);

delete(String url,Map urlVariable);

delete(URI uri,);

微服务——RestTemplate的更多相关文章

  1. SpringCloud(1)---基于RestTemplate微服务项目案例

    基于RestTemplate微服务项目 在写SpringCloud搭建微服务之前,我想先搭建一个不通过springcloud只通过SpringBoot和Mybatis进行模块之间额通讯.然后在此基础上 ...

  2. SprirngBoot微服务之间的交互—— restTemplate

    一 例:需要在storage服务中请求utils服务的某个接口(两个服务都已向同一台eureka server 注册) 步骤: 1 在utils创建需被调用的接口 @RestController @R ...

  3. SpringCloud(1)----基于RestTemplate微服务项目

    在写SpringCloud搭建微服务之前,我想先搭建一个不通过springcloud只通过SpringBoot和Mybatis进行模块之间额通讯.然后在此基础上再添加SpringCloud框架. 下面 ...

  4. 「 从0到1学习微服务SpringCloud 」04服务消费者Ribbon+RestTemplate

    系列文章(更新ing): 「 从0到1学习微服务SpringCloud 」01 一起来学呀! 「 从0到1学习微服务SpringCloud 」02 Eureka服务注册与发现 「 从0到1学习微服务S ...

  5. Spring Cloud Alibaba(2)---RestTemplate微服务项目

    RestTemplate微服务项目 前言 因为要运用 Spring Cloud Alibaba 开源组件到分布式项目中,所以这里先搭建一个不通过 Spring Cloud只通过 RestTemplat ...

  6. [译]Spring构建微服务

    此文为译文,原文地址 介绍 本文通过一个使用Spring.Spring Boot和Spring Cloud的小例子来说明如何构建微服务系统. 我们可以通过数个微服务组合成一个大型系统. 我们可以想象下 ...

  7. 使用Spring Sleuth和Zipkin跟踪微服务

    随着微服务数量不断增长,需要跟踪一个请求从一个微服务到下一个微服务的传播过程, Spring Cloud Sleuth 正是解决这个问题,它在日志中引入唯一ID,以保证微服务调用之间的一致性,这样你就 ...

  8. 综合使用spring cloud技术实现微服务应用

    在之前的章节,我们已经实现了配置服务器.注册服务器.微服务服务端,实现了服务注册与发现.这一章将实现微服务的客户端,以及联调.实现整个spring cloud框架核心应用. 本文属于<7天学会s ...

  9. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

随机推荐

  1. Win10系统Ping端口及利用telnet命令Ping 端口

    启用 telnet 客户端组件为 Ping 端口做准备 在程序界面下,选择“打开或关闭Windows功能”,如下图所示: 在打开的对话框中,找到“Telnet客户端”并勾选.最后点击“确定”,等待几分 ...

  2. 【.NetCore学习】ubuntu16.04 搭建.net core mvc api 运行环境

    查看linux内核版本 uname -a 打印结果 python@ubuntu:~$ uname -a Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed ...

  3. 使用Python3.7.0搭建简易服务器

    一.下载并安装Python 官网地址 二.新建start_server.bat 在需要搭建服务器的根目录位置,新建一个start_server.bat文件 内容 python -m http.serv ...

  4. struts2,spring,ibatis学习

    1.1 什么是struts2? MVC思想给网站设计带来了巨大的好处,但是MVC毕竟只是一种思想,不同的程序员写出来的基于MVC思想的应用,风格可能不一样.影响程序的标准化,Struts是为了规范MV ...

  5. Spark LogisticRegression 逻辑回归之建模

    导入包 import org.apache.spark.sql.SparkSession import org.apache.spark.sql.Dataset import org.apache.s ...

  6. nodejs抓取页面内容,并分析有无某些内容的js文件

    nodejs获取网页内容绑定data事件,获取到的数据会分几次相应,如果想全局内容匹配,需要等待请求结束,在end结束事件里把累积起来的全局数据进行操作! 举个例子,比如要在页面中找有没有www.ba ...

  7. Tarjan 强连通分量 及 双联通分量(求割点,割边)

    Tarjan 强连通分量 及 双联通分量(求割点,割边) 众所周知,Tarjan的三大算法分别为 (1)         有向图的强联通分量 (2)         无向图的双联通分量(求割点,桥) ...

  8. 常见的压缩文件格式案例tarZ

    在AIX上最常见的压缩文件就是.tar压缩格式的文件了.  而除了tar文件以外,有时会遇到数据是用其它的压缩文件格式,所以偶顺手整理了一些常见的压缩文件格式,在AIX要怎么解压缩 : 一. .tar ...

  9. PAT甲级1055 The World's Richest【排序】

    题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805421066272768 题意: 给定n个人的名字,年龄和身价. ...

  10. 没有上司的舞会|codevs1380|luoguP1352|树形DP|Elena

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond   题目描述 Description Ural大学有N个职员,编号为1~N.他们有从属关系 ...