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

 package com.tanlu.user.api.controller.XJH;

 import com.alibaba.fastjson.JSON;
import com.tanlu.user.common.ResponseData;
import com.tanlu.user.common.XJH.Dto.XjhPushDto;
import com.tanlu.user.common.request.UploadRequest;
import com.tanlu.user.service.XJHPushService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException; @RestController
@RequestMapping(value = "/push")
public class XJHPushController {
private static Logger logger = LoggerFactory.getLogger(XJHPushController.class); @Autowired
private XJHPushService xjhPushService; /**
* xjh二推
* @param dto
* @return
*/
@RequestMapping(value = "/xjh/secondPush", method = RequestMethod.POST, produces = "application/json")
public ResponseData secondPush(@RequestBody XjhPushDto dto){
logger.info("XJH二推请求参数:"+ JSON.toJSON(dto));
ResponseData responseData = xjhPushService.secondPushData(dto);
return responseData;
} }
XJHPushService 接口代码:
  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;
} }
 
05-28 17:52