一、REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。
二、RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。调用RestTemplate的默认构造函数,RestTemplate对象在底层通过使用java.net包下的实现创建HTTP 请求,可以通过使用ClientHttpRequestFactory指定不同的HTTP请求方式。
三、这里主要介绍几种RestTemplate的用法
1)第一种post请求
  public ResponseEntity doPost(String url, Map<String,Object> map) {RestTemplate restTemplate = new RestTemplate();HttpHeaders httpHeaders = new HttpHeaders();httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);Gson gson = new Gson();HttpEntity<String> httpEntity = new HttpEntity(gson.toJson(map), httpHeaders);ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, Object.class);return responseEntity;}

  说明:这种方式主要是用于post数据的传输,因为rest的简洁性,在使用上面也会得到恨到的应用。

  2)第二种get请求

   public ResponseEntity doGet(String url) {RestTemplate restTemplate = new RestTemplate();HttpHeaders httpHeaders = new HttpHeaders();httpHeaders.setContentType(MediaType.TEXT_HTML);HttpEntity<String> httpEntity = new HttpEntity(httpHeaders);ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, Object.class);return responseEntity;}

  说明:get请求没有太大的解释,基本上面的设置都是这样

  3)第三种from方式

  public ResponseEntity doFrom(String url, LinkedMultiValueMap<String, Object> map) {RestTemplate restTemplate = new RestTemplate();HttpHeaders httpHeaders = new HttpHeaders();httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);HttpEntity<LinkedMultiValueMap<String, Object>> httpEntity =       new HttpEntity(map, httpHeaders); ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, Object.class); return responseEntity; }

  说明:表单的方式使用虽然不常见,但是应用的时候也需要注意几点,数据形式LinkedMultiValueMap和HashMap不同存储方式的是name=rest&password=123。

  而Content-Type的方式为application/x-www-form-urlencoded。这种表单处理方式,对于数据的处理上面要特别注意

转载于:https://www.cnblogs.com/ll409546297/p/8250794.html

java之RestTemplate的访问应用相关推荐

  1. java接口如何定义常量 c_在Java接口中怎样访问定义的常量呢?

    java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能).那么我们在Java接口中怎 ...

  2. Java SE 桌面可访问性

    Java Access Bridge 是一项在 Microsoft Windows DLL 中公开 Java Accessibility API 的技术,可以使实现 Java Accessibilit ...

  3. idea 启动php项目路径,关于idea中Java Web项目的访问路径问题

    说明 这里只以 servlet 为例,没有涉及到框架,但其实路径的基本原理和框架的关系不大,所以学了框架的同学如果对路径有疑惑的也可以阅读此文 项目结构 在 idea 中新建一个 Java Web 项 ...

  4. java实现账号单一ip登录,使用Java实现简单后台访问并获取IP示例

    使用Java实现简单后台访问并获取IP示例 发布时间:2020-10-28 21:57:57 来源:亿速云 阅读:92 作者:Leah 使用Java实现简单后台访问并获取IP示例?针对这个问题,这篇文 ...

  5. Spring Data:企业级Java的现代数据访问技术(影印版)

    <Spring Data:企业级Java的现代数据访问技术(影印版)> 基本信息 原书名:Spring Data:Modern Data Access for Enterprise Jav ...

  6. java中四种默认的权限修饰符,Java中四种访问权限资料整理

    一.Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private.public.protected,还有一种不带任何修饰符(default). 1. private: Java语言中对访 ...

  7. Java语言中的-----访问修饰符

    day04 Java语言中的----访问修饰符 一.访问修饰符概述: 访问修饰符就是对变量或者是方法或者是类的一个修饰,通过修饰以后实现一些必要的权限,主要是说明类成员如何被使用的作用. 二.访问修饰 ...

  8. Java中四种访问权限总结

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 一.Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private.public.pro ...

  9. restTemplate设置访问超时

    (一)RestTemplate 客户端 1.RestTemplate 是Spring的封装,需要spring的包 spring-web-3.0.7.RELEASE.jar 2.客户端代码: 1 /** ...

  10. java web ip_详解Java Web如何限制访问的IP的两种方法

    前一阵子因为在做项目时碰到了这个功能,现在好好总结一下,至于为什么要限制IP访问,我就不多说了.然后百度了一下,现在主要有两种方式去限制IP访问,第一种是最简单的方便的,第二种是通过过滤器来限制访问. ...

最新文章

  1. Quartus II sof文件转 jic文件
  2. CSP认证201609-1 最大波动[C++题解]:遍历
  3. 2. Get the codes from GIT
  4. 360浏览器查看html文件在哪里,360浏览器8菜单栏怎么弄出来?如何查看网站源代码...
  5. 程序员相比于黑客(Hacker),差距有多远?看看程序员怎么说!
  6. java string类型详解_Java字符串类型详解
  7. 16进制 hbase phoenix_HBase 和 Phoenix 的使用
  8. ***性测试是一种特殊的信息安全服务
  9. android UI进阶之布局的优化
  10. HTML中meta的作用
  11. 在Yalmip中应用SDPT3
  12. tippy.js悬浮提示工具插件
  13. 数量积、向量积与混合积
  14. 用Python挖掘网易云音乐的热门歌单
  15. opencv鼠标事件和滑条操作
  16. 学习笔记——VMware网络桥接的几个问题(有配置问题的值得一看)
  17. 使用人人开源项目遇到的一些坑
  18. 【内存管理】【slab】/sys/kernel/slab/<slab name>/trace解析
  19. IE系列浏览器把application/json响应视为文件,并尝试下载
  20. 华为OD机试2023年最新题库(JAVA、Python、C++)

热门文章

  1. SQL 中的 in 与 not in、exists 与 not exists 的区别以及性能分析
  2. 看看别人后端API接口写得,那叫一个优雅!
  3. 周五,放松心情,听我来分享问题背后的背后(二)
  4. python典型安装_python安装某些第三方包报错解决办法
  5. python 类self作用_self在Python中有什么用途?
  6. django图片上传到oss_从攻防角度看oss安全(二)
  7. java modbus通讯协议_Modbus通 讯 协 议
  8. filename.whl is not supported wheel on this platform 部分第三方库无法安装的解决办法
  9. SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别 及动态查询中的标识符函数QUOTENAME
  10. 批量传输mysql的表空间_MySQL 表空间传输