RestTemplate实现不同项目的RESTful调用

一、概述

        因要实现不同项目之间的RESTful接口调用,后来发现RestTemplate很好用,这里先简单使用。

 

二、项目搭建

        搭建很简单,可以参考CXF+JAX-RS搭建RESTful风格的WebService。其实不需要这么复杂,不过比较晚了就暂时没写那么细。下面的测试也在此文章中描述的项目基础上进行测试。

 

三、使用RestTemplate进行调用

        先测试一个同一个项目下的调用情况。

import com.alibaba.druid.support.json.JSONUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

/**
 * @Author: Qin
 * @Description:
 * @Date: Created 
 * @Modified By:
 */
public class RestTemplateTest {


    public static void main(String[] args){
//        String url = "http://localhost:8085/ciLib/tree.json";
        String url = "http://localhost:8080/itil/capabilityWs/getTest";

        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity responseEntity = restTemplate.getForEntity(url, String.class);
//        System.out.print(responseEntity.toString());
//        System.out.println();
        System.out.print(JSONUtils.toJSONString(responseEntity.getBody()));
    }

}

        下面测试不同项目的结果,另一个项目采用的技术基本上是一样的。代码如下,只是把url换成另一个项目中某个具体方法的映射而已,访问controller的某个方法跟前端jsp页面访问controller一样的,返回的数据格式为JSON。       

 

四、RestTemplate说明

        RestTemplate很大程度上简化了不同服务间的调用,支持多种不同类型方法(POST/GET等),具体可参考官方说明:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html。下面简单说明RestTemplate常用的方法。需要注意的是,RestTemplate是Spring框架的内容,而RestTemplateBuilder等是SpringBoot框架的内容。

4.1 RestTemplate类

 

         上面的三张截图是TestTemplate类的方法与变量。常用的可能并不多。

getForEntity()    发送get方法的请求,返回ResponseEntity,封装了请求后的响应内容

postForEntity()  发送post方法的请求,返回ResponseEntity,封装了请求后的响应内容  

postForObject()  返回对象,postForObject()与postForEntity()有些类似,返回结果不一样

 

4.2 ResponseEntity

         并调用了postForEntity或其它ForEntity的方法后,会返回postForEntity类型,它包含了发送请求后的响应内容,包含状态和拿到的响应数据。

getStatusCode()  请求的状态,对应HttpStatus枚举

getStatusCodeValue() 响应的状态响,对应了HttpStatus枚举的value

getBody()  请求后得到的响应数据,比如发送的查询用户请求,如果成功那得到的就是用户的信息

getHeaders()   请求的头部信息

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值