关于RestTemplate

首先,你可以把它理解为一个发起请求并接收响应的工具类(功能类似浏览器)。

其次,它其实是一个壳,具体还是通过调用别的接口来实现(如jdk自带的连接,或者HttpClient之类的,需要设置)。

官方介绍

Spring's central class for synchronous client-side HTTP access. 
It simplifies communication with HTTP servers, and enforces RESTful principles.
It handles HTTP connections, leaving application code to provide URLs (with possible template variables) and extract results. Note: by default the RestTemplate relies on standard JDK facilities to establish HTTP connections.
You can switch to use a different HTTP library such as Apache HttpComponents, Netty, and OkHttp
through the HttpAccessor.setRequestFactory(org.springframework.http.client.ClientHttpRequestFactory) property.

使用

这个其实没什么说的,不外乎创建template,设置底层连接,然后增删改查。

请参考Spring RESTRestTemplate实践

唯一需要注意的就是默认的jdk连接是不支持delete带请求体--解决办法见下面链接。

其他

暂时不清楚使用RestTemplate和直接使用HttpClient有什么区别,感觉HttpClient足够用了--囧。

--突然想到的,RestTemplate可以配合MessageConverter等使用!!!也就是配合SpringMVC使用,而HttpClient则需要手动转换!

杂:

httpHeaders.add("Accept-Language", "zh-CN,zh;q=0.8,en;q=0.6");

q是权重系数,范围 0 =< q <= 1,q 值越大,请求越倾向于获得其“;”之前的类型表示的内容,若没有指定 q 值,则默认为1,若被赋值为0,则用于提醒服务器哪些是浏览器不接受的内容类型。

参考:

通过 Spring RestTemplate 调用带请求体的 Delete 方法(Delete With Request Body)

为你详细解读HTTP请求头的具体含意

网页头部的声明应该是用 lang="zh" 还是 lang="zh-cn"?

HttpClient使用详解

RestTemplate实践

Spring REST

HttpClient使用详解

另推荐一个好文

SpringMVC源码剖析(五)-消息转换器HttpMessageConverter

Spring RestTemplate 小结的更多相关文章

  1. Spring RestTemplate: 比httpClient更优雅的Restful URL访问, java HttpPost with header

    { "Author": "tomcat and jerry", "url":"http://www.cnblogs.com/tom ...

  2. Spring RestTemplate介绍

    http://www.cnblogs.com/rollenholt/p/3894117.html RestTemplate 这篇文章打算介绍一下Spring的RestTemplate.我这边以前设计到 ...

  3. How to Send an HTTP Header With Every Request With Spring RestTemplate

    In Know Which Apps Are Hitting Your Web Service, I showed how to write a servlet filter that enforce ...

  4. Spring RestTemplate详解

    Spring RestTemplate详解   1.什么是REST? REST(RepresentationalState Transfer)是Roy Fielding 提出的一个描述互联系统架构风格 ...

  5. Spring RestTemplate中几种常见的请求方式GET请求 POST请求 PUT请求 DELETE请求

    Spring RestTemplate中几种常见的请求方式 原文地址: https://blog.csdn.net/u012702547/article/details/77917939   版权声明 ...

  6. How to disable SSL certificate checking with Spring RestTemplate?(使用resttemplate访问https时禁用证书检查)

    How to disable SSL certificate checking with Spring RestTemplate?(使用resttemplate访问https时禁用证书检查) **** ...

  7. spring RestTemplate用法详解

    spring RestTemplate用法详解 spring 3.2.3 框架参考有说明 21.9 Accessing RESTful services on the Client

  8. 使用HttpClient4来构建Spring RestTemplate

    Spring RestTemplate简单说明 现在REST服务已经很普及了,在我们的程序中,经常会需要调用REST API,这时候会有很多选择,原始一点的JDK自带的,再进一步点使用HttpClie ...

  9. spring restTemplate 用法

    发出get请求,方式一 String url = serverUrl+"/path/path?id={id}"; int i = restTemplate.getForObject ...

随机推荐

  1. (三)RocketMq入门之独立线程处理业务

    一.示例代码 这段代码实现了一个独立线程监听在一个特殊的消息队列上,一旦收到消息就处理并发送给MQ,然后推送给所有的消费者. import com.alibaba.rocketmq.client.ex ...

  2. js调用父级frame中的方法

    父级frame中的方法: function hideOutline() { $("#outline").hide(); $("#content").attr(& ...

  3. 使用NuGet发布自己的.NET NuGet 包( .NET Standard & Windows)

    发布自己的nuget包 STEP 1:获取API Key 首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key,或者是自建服务器上生成一个API Key( ...

  4. Spark部署配置

    前提是已经安装了Hadoop ============================ SetUp Spark=============================Configuration sp ...

  5. 32个最热CPLD-FPGA论坛

    1. OPENCORES.ORG这里提供非常多,非常好的PLD了内核,8051内核就可以在里面找到.进入后,选择project或者由http//www.opencores.org/browse.cgi ...

  6. UTF8字符串在lua的截取和字数统计【转载】

    转载自:GitHub:pangliang/pangliang.github.com 需求 按字面个数来截取 函数(字符串, 开始位置, 截取长度) utf8sub(,) = 好1世界哈 utf8sub ...

  7. HBase性能优化方法总结(三):读表操作

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第三部分内容:读表操作相关的优化方法 ...

  8. 小程序之自定义组件 ---- 列表goodsList

    教程请查看小程序开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/ 自定义组件:自定义组 ...

  9. feginclinet中设置hystrix的参数

    package com.example.demo; import com.netflix.hystrix.HystrixCommand; //import com.netflix.hystrix.co ...

  10. arm B和BL指令浅析

    arm B和BL指令浅析 B或BL指令引起处理器转移到“子程序名”处开始执行.两者的不同之处在于:(1)BL指令在转移到子程序执行之前,将其下一条指令的地址拷贝到R14(LR,链接寄存器).      ...