spring中 使用restTemplate访问rest接口

使用spring框架中的 RestTemplate访问rest接口
在开发过程中,有后台服务访问远程rest接口的需求,采用spring 框架中的RestTemplate类实现。
RestTemplate类位于org.springframework.web.client包中,提供Http的各类方法:如Get,Head,Post,Put,Delete等,用于访问rest接口,本文以get方法举个简单的例子,介绍RestTemplate类的使用。
RestTemplate有两个构造方法,分别是:
public RestTemplate() {
/**
...初始化过程
*/
}
public RestTemplate(ClientHttpRequestFactory requestFactory) {
this();
setRequestFactory(requestFactory);
}
其中,第二个构造方法中可以传入ClientHttpRequestFactory参数,第一个进行默认初始化,需求中我们需要对请求超时进行设置并能够对超时进行后续处理,第一个构造方法,我们无法控制超时时间,第二个构造中的ClientHttpRequestFactory接口的实现类中存在timeout属性,因此选用第二个构造方法。
在spring配置文件中进行如下配置:
<!-- 配置RestTemplate -->
<!--Http client Factory-->
<bean id="httpClientFactory" class="org.springframework.http.client.SimpleClientHttpRequestFactory">
<property name="connectTimeout" value="${connectTimeout}"/>
<property name="readTimeout" value="${readTimeout}"/>
</bean>
<!--RestTemplate-->
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<constructor-arg ref="httpClientFactory"/>
</bean>
注意:ClientHttpRequestFactory 接口有4个实现类,分别是:
1.AbstractClientHttpRequestFactoryWrapper 用来装配其他request factory的抽象类。
2.CommonsClientHttpRequestFactory 允许用户配置带有认证和http连接池的httpclient,已废弃,推荐用HttpComponentsClientHttpRequestFactory。
3.HttpComponentsClientHttpRequestFactory 同2.
4.SimpleClientHttpRequestFactory 接口的一个简单实现,可配置proxy,connectTimeout,readTimeout等参数。
本文中使用的是第4个实现,具体的根据个人需求再选在使用哪个。
程序中如何使用:
1.在服务类中自动注入:
@Qualifier("restTemplate")
@Autowired
private RestTemplate restTemplate;
2. Map<String, Object> urlVariables = new HashMap<String, Object>();
urlVariables.put("param1",param1);
urlVariables.put("param2",param2);
JSONObject result = restTemplate.getForObject(restURI,
JSONObject.class, urlVariables);
方法的使用详细大家再查api。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值