spring的restTemplate注意点
2017-01-08 21:04
357 查看
spring的restTemplate可以向一个url发送请求并接收服务器端的响应信息。但在发请求时,会对请求的url值进行编码再发送。
下面看spring的RestTemplate的源码:
restTemplate基本上发送请求的方法内部都会调用到execute()方法:
![](http://img.blog.csdn.net/20170108210002829?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJzaHVzaGVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
expand()方法的代码如下:
![](http://img.blog.csdn.net/20170108204445253?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJzaHVzaGVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
encode()方法的代码如下:
![](http://img.blog.csdn.net/20170108204502081?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvUGV0ZXJzaHVzaGVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
所以如果使用非spring的服务器接收时,需要进行解码才能接收到RestTemplate发送的内容。(spring的服务器接收到参数时会自动进行一次解码,所以使用restTemplate发送消息,Spring的服务器接收时不会出现问题)。
下面看spring的RestTemplate的源码:
restTemplate基本上发送请求的方法内部都会调用到execute()方法:
expand()方法的代码如下:
encode()方法的代码如下:
所以如果使用非spring的服务器接收时,需要进行解码才能接收到RestTemplate发送的内容。(spring的服务器接收到参数时会自动进行一次解码,所以使用restTemplate发送消息,Spring的服务器接收时不会出现问题)。
相关文章推荐
- 微服务框架Spring Cloud介绍 Part2: Spring Cloud与微服务
- myTemplate模板引擎
- springmvc实现url路由功能
- spring aop 无法代理父类方法 的解决方法
- Spring MVC过滤器-超类 GenericFilterBean
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- 使用MVC微信支付返回get_brand_wcpay_request:fail
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- C++ Template应用详解
- 动态ItemTemplate的实现(译) - item,template
- 微信小程序 Template详解及简单实例
- knockoutjs动态加载外部的file作为component中的template数据源的实现方法
- java 中Spring task定时任务的深入理解