使用RestTemplet 调用远程端口

之前接到个项目,远程调用其他公司的接口,因为只是简单的项目,所以使用了RestTemplate 调用接口:

在service层实现调用:

    public  List<GroupVo> GetxxxInfo() {
         //创建 RestTemplate ,也可以设置成全局变量
        RestTemplate restTemplate  =new RestTemplate();
        //自定义的请求实体
        BaseRequest request=new BaseRequest() ;
        //需要在 headers 设置一些 参数
        HttpHeaders requestHeaders = new HttpHeaders();
        //这里使用的json格式 ,若不加则可能会有异常
        requestHeaders.setContentType(MediaType.APPLICATION_JSON);
        //将请求的参数实体放在这里
        HttpEntity<BaseRequest> requestEntity = new HttpEntity<BaseRequest>(request, requestHeaders);
        //远程api接口
        String url="http://xxxx.xxxx.cn/xxxx/xxx/xxxx";
        //使用 http post 请求,用postForObject ,GET请求不一样
        //str 是接收的 字符串,返回类型一般也是响应式结构,看公司吧
        String str =restTemplate.postForObject(url,requestEntity,String.class);
        //ReceiveBasic 也是自定义的,主体也是 响应式结构
        ReceiveBasic myclass = JSONObject.parseObject(str , ReceiveBasic.class);
        //这里 code状态为0 是成功的意思,有的是200,
//        if (myclass.getCode() !=0 ){
//            log.error(myclass.getMsg());
//        }
        //info 是信息主体,这里是String类型
        String info =myclass.getInfo();
        // GroupVo 是返回的消息主体的实体类
        List<GroupVo> list = JSON.parseArray(info, GroupVo.class);
        return  list;
    }
}

 

返回类型是 响应式结构:

 

/**
 *   接收消息的 基本类
 */
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ReceiveBasic {

    //错误编号
    private Integer code;
    //错误说明
    private String msg;
    //返回的类信息
    private String info;
    //总页数
    private String pagecount;
    //总数量
    private String totalcount;
}



 

 

json用的是:

<!-- 阿里JSON解析器 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>${fastjson.version}</version>
</dependency>

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值