利用RestTemplate进行http调用

在对接API的时候,会涉及调用第三方的服务,这时候可以利用RestTemplate进行调用,下面给大家展示一个简单的调用demo。

 

 1 package com.tanlu.user.api.controller.XJH;
 2 
 3 import com.alibaba.fastjson.JSON;
 4 import com.tanlu.user.common.ResponseData;
 5 import com.tanlu.user.common.XJH.Dto.XjhPushDto;
 6 import com.tanlu.user.common.request.UploadRequest;
 7 import com.tanlu.user.service.XJHPushService;
 8 import org.slf4j.Logger;
 9 import org.slf4j.LoggerFactory;
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.web.bind.annotation.RequestBody;
12 import org.springframework.web.bind.annotation.RequestMapping;
13 import org.springframework.web.bind.annotation.RequestMethod;
14 import org.springframework.web.bind.annotation.RestController;
15 import java.io.IOException;
16 
17 @RestController
18 @RequestMapping(value = "/push")
19 public class XJHPushController {
20     private static Logger logger = LoggerFactory.getLogger(XJHPushController.class);
21 
22     @Autowired
23     private XJHPushService xjhPushService;
2
38     /**
39      * xjh二推
40      * @param dto
41      * @return
42      */
43     @RequestMapping(value = "/xjh/secondPush", method = RequestMethod.POST, produces = "application/json")
44     public ResponseData secondPush(@RequestBody XjhPushDto dto){
45         logger.info("XJH二推请求参数:"+ JSON.toJSON(dto));
46         ResponseData responseData = xjhPushService.secondPushData(dto);
47         return responseData;
48     }

 }
XJHPushService 接口代码:
 1 public interface XJHPushService { ResponseData secondPushData(XjhPushDto dto); } 

XJHPushService 接口实现类:
package com.tanlu.user.service.impl;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.tanlu.user.common.ResponseData;
import com.tanlu.user.common.XJH.Dto.XjhPushDto;
import com.tanlu.user.common.XJH.EmergencyContact;
import com.tanlu.user.common.XJH.Enum.XJHMarriedEnum;
import com.tanlu.user.common.XJH.Enum.XJHRelationEnum;
import com.tanlu.user.common.XJH.Info.*;
import com.tanlu.user.common.XJH.XJHReciveFirstPushResult;
import com.tanlu.user.common.XJH.XjhApplyDetail;
import com.tanlu.user.common.client.OpenClient;
import com.tanlu.user.common.dto.AuthNotifyDto;
import com.tanlu.user.common.dto.ResultDataDto;
import com.tanlu.user.common.dto.SystemAuditDto;
import com.tanlu.user.common.entity.*;
import com.tanlu.user.common.eum.ChannelEnum;
import com.tanlu.user.common.request.FirstPullRequest;
import com.tanlu.user.common.request.PullRequest;
import com.tanlu.user.common.request.SecondPullRequest;
import com.tanlu.user.common.request.UploadRequest;
import com.tanlu.user.common.response.GetGoodsResponse;
import com.tanlu.user.common.util.CdnUploadTools;
import com.tanlu.user.common.util.CommUtils;
import com.tanlu.user.common.util.JsonUtils;
import com.tanlu.user.common.vo.FirstPushVo;
import com.tanlu.user.mapper.*;
import com.tanlu.user.service.XJHPushService;
import org.apache.commons.lang3.StringUtils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import java.io.DataInputStream;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;

@Service
public class XJHPushServiceImpl implements XJHPushService {
    private static final Logger logger = LoggerFactory.getLogger(XJHPushServiceImpl.class);

    @Value("${easyopen.url}")
    private String easyOpenUrl;

    @Value("${easyopen.appKey}")
    private String easyOpenAppKey;

    @Value("${easyopen.secret}")
    private String easyOpenSecret;

    @Value("${pushCallBack.url}")   //从配置文件获取具体的Url
    private String pushCallBackUrl;



    @Autowired
    private BorrowerMapper borrowerMapper;
    @Autowired
    private BorrowerDetailMapper borrowerDetailMapper;
    @Autowired
    private BwOrderMapper bwOrderMapper;
    @Autowired
    private BwPersonInfoMapper bwPersonInfoMapper;
    @Autowired
    private BwBorrowerPersonalMapper bwBorrowerPersonlMapper;
    @Autowired
    private BorrowerIdentityMapper borrowerIdentityMapper;
    @Autowired
    private BwIdentityCardMapper bwIdentityCardMapper;
    @Autowired
    private BwFaceidVerifyMapper bwFaceidVerifyMapper;
    @Autowired
    private BwOrderChannelMapper bwOrderChannelMapper;
    @Autowired
    private BwProductDictionaryMapper bwProductDictionaryMapper;
    @Autowired
    private BwWorkInfoMapper bwWorkInfoMapper;
    @Autowired
    private BwContactListMapper bwContactListMapper;
    @Autowired
    private BwOrderAuthMapper bwOrderAuthMapper;
    @Autowired
    private BwBankCardMapper bwBankCardMapper;
    @Autowired
    private BwAdjunctMapper bwAdjunctMapper;
    @Autowired
    private XyMobileDevInfoMapper xyMobileDevInfoMapper;

    @Autowired
    private RestTemplate restTemplate;
    @Autowired
    private RedisTemplate redisTemplate;
/**
     * 解析小金花二推数据
     * @param dto
     * @return
     */
    @Override
    public ResponseData secondPushData(XjhPushDto dto) {
        ResponseData response = ResponseData.susscce();
//省去具体的业务逻辑操作
//小金花二推回调 FirstPushVo vo = new FirstPushVo(); vo.setUserId(String.valueOf(bwOrder.getBorrowerId())); vo.setChannelCode(dto.getChannelCode()); vo.setOrganCode(dto.getOrganCode()); vo.setName(borrower.getName()); vo.setPhone(borrower.getPhone()); vo.setIdcard(borrower.getIdCard()); vo.setOrderNo(proxyOrderNo); vo.setOrderId(bwOrder.getOrderNo()); String jsonObj = JSON.toJSONString(vo); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON_UTF8); HttpEntity<String> httpEntity = new HttpEntity(jsonObj,headers); String requestUrl = pushCallBackUrl; logger.info("XJH二推回调请求地址为:{}",requestUrl); ResponseEntity<ResultDataDto> rsp = restTemplate.exchange(requestUrl, HttpMethod.POST,httpEntity,ResultDataDto.class);
logger.info(
"XJH二推回调结果:"+JSON.toJSON(rsp)); if (rsp.getStatusCodeValue() == 200){ logger.info("XJH二推回调成功"); } return response; } }

 

 

 

posted @ 2019-04-12 14:03  小柴胡颗粒  阅读(676)  评论(0编辑  收藏  举报