HTTP 请求工具类-RestTemplate
RestTemplate
什么是RestTemplate? |
传统情况下在java代码里访问restful服务,一般使用Apache的HttpClient。不过此种方法使用起来太过繁琐。spring提供了一种简单便捷的模板类来进行操作,这就是RestTemplate。
一个简单的例子 |
定义一个简单的restful接口
@RestController
public class TestController
{@RequestMapping(value = "testPost", method = RequestMethod.POST)public ResponseBean testPost(@RequestBody RequestBean requestBean){ResponseBean responseBean = new ResponseBean();responseBean.setRetCode("0000");responseBean.setRetMsg("succ");return responseBean;}
}
使用RestTemplate访问该服务
//请求地址String url = "http://localhost:8080/testPost";//入参RequestBean requestBean = new RequestBean();requestBean.setTest1("1");requestBean.setTest2("2");requestBean.setTest3("3");RestTemplate restTemplate = new RestTemplate();ResponseBean responseBean = restTemplate.postForObject(url, requestBean, ResponseBean.class);
从这个例子可以看出,使用restTemplate访问restful接口非常的简单粗暴无脑。(url, requestMap,
ResponseBean.class)这三个参数分别代表 请求地址、请求参数、HTTP响应转换被转换成的对象类型。
RestTemplate方法的名称遵循命名约定,第一部分指出正在调用什么HTTP方法,第二部分指示返回的内容。本例中调用了restTemplate.postForObject方法,post指调用了HTTP的post方法,Object指将HTTP响应转换为您选择的对象类型。还有其他很多类似的方法,有兴趣的同学可以参考官方api。
手动指定转换器(HttpMessageConverter) |
我们知道,调用reseful接口传递的数据内容是json格式的字符串,返回的响应也是json格式的字符串。然而restTemplate.postForObject方法的请求参数RequestBean和返回参数ResponseBean却都是java类。是RestTemplate通过HttpMessageConverter自动帮我们做了转换的操作。
默认情况下RestTemplate自动帮我们注册了一组HttpMessageConverter用来处理一些不同的contentType的请求。
你可以在org.springframework.http.converter包下找到所有spring帮我们实现好的转换器。
如果现有的转换器不能满足你的需求,你还可以实现org.springframework.http.converter.HttpMessageConverter接口自己写一个。详情参考官方api。
选好了HttpMessageConverter后怎么把它注册到我们的RestTemplate中呢。
RestTemplate restTemplate = new RestTemplate();//获取RestTemplate默认配置好的所有转换器List<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters();//默认的MappingJackson2HttpMessageConverter在第7个 先把它移除掉messageConverters.remove(6);//添加上GSON的转换器messageConverters.add(6, new GsonHttpMessageConverter());
这个简单的例子展示了如何使用GsonHttpMessageConverter替换掉默认用来处理application/json的MappingJackson2HttpMessageConverter。
出处:https://www.jianshu.com/p/90ec27b3b518
HTTP 请求工具类-RestTemplate相关推荐
- C#实现的UDP收发请求工具类实例
本文实例讲述了C#实现的UDP收发请求工具类.分享给大家供大家参考,具体如下: 初始化: ListeningPort = int.Parse(ConfigurationManager.AppSetti ...
- 【Java】HTTP请求工具类
前言 在工作中可能存在要去调用其他项目的接口,这篇文章我们实现在Java代码中实现调用其他项目的接口. 本章内容: 创建一个携带参数的POST请求,去请求其他项目的接口并返回数据. 附加HTTP请求工 ...
- HTTP POST 请求工具类
HTTP/HTTPS POST 请求工具类 Maven pom.xml 引入依赖 <dependency><groupId>org.apache.httpcomponents& ...
- 【Http请求工具类】
Http请求工具类(待优化) 添加相关依赖 <!-- 发送http请求依赖 --><dependency><groupId>commons-io</group ...
- http和https请求工具类
https请求 @Slf4j public class HttpPostUtils {public static int RESPONSE_STATUS_OK = 0;public static JS ...
- Java 常用HTTP请求工具类HttpUtils
.pom依赖 <!-- httpclient --><dependency><groupId>org.apache.httpcomponents</group ...
- .NET WebApi调用微信接口Https请求工具类
.NET WebApi调用微信接口Https请求工具类 using System; using System.Collections.Generic; using System.IO; using S ...
- HTTP请求工具类(POST)
HTTP请求工具类 POST请求 package com.cuierdan.utils;import org.apache.logging.log4j.LogManager; import or ...
- Http请求工具类:Get/Post
第一种 import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpEntity; import org.apache.htt ...
最新文章
- 钢结构节点输出软件_BIM助力桥梁钢结构设计施工一体化建设
- Android开发工具——ADB(Android Debug Bridge) 二HOST端
- 计算机网络:Socket网络通信底层数据传输
- “概率模型与计算机视觉”-林达华
- react native基本调试技巧
- app分发平台java_集成 Asset Delivery (Java)
- 老男孩教育参观云计算公司
- 解释器android,Android的设计模式-解释器模式
- Android系统启动过程
- Cannot create container for service peer1.org2.example.com: Conflict. 解决方案
- Groovy 教程-- Groovy 入门
- Autodesk 首届云编程马拉松过程纪实和感想
- 你可能会读错的字大集合
- 安装centos6.5没有网,右上角也没有网络图标
- Windows中使用cmd查看磁盘及其格式
- 幻影路由服务器无响应,幻影D128路由器连不上网怎么办? | 192路由网
- CloudComparePCL 剔除点云中的重复点
- 如何提问,提问技巧,如何有效的获取问题的答案
- Java Json和yaml转换
- MindSpore实现手写数字识别代码
热门文章
- Golang 依赖注入
- mysql where 1 作用_mysql中使用 where 1=1和 0=1 的作用
- Invalid options object. Dev Server has been initialized using an options object
- IndexOf与substring的使用
- C语言试题(答案带解析)
- 解决v-for轮播图中图片无法显示
- android复制工具,2款实用的Android 安卓手机任意界面所有文字随意「复制」工具...
- Muddy Puddle
- Apple Swift
- Qt:使用qDebug()函数调试