利用RestTemplate进行http调用
在对接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;
} }
利用RestTemplate进行http调用的更多相关文章
- SpringCloud03 Ribbon知识点、 Feign知识点、利用RestTemplate+Ribbon调用远程服务提供的资源、利用feign调用远程服务提供的资源、熔断
1 远程服务资源的调用 1.1 古老的套路 在微服务出现之前,所有的远程服务资源必须通过RestTemplate或者HttpClient进行:但是这两者仅仅实现了远程服务资源的调用,并未提供负载均衡实 ...
- Xilium.CefGlue利用XHR实现Js调用c#方法
防外链 博客园原文地址在这里http://www.cnblogs.com/shen6041/p/3442499.html 引 Xilium CefGlue是个不错的cef扩展工程,托管地址在这里 ht ...
- tp 框架 利用反射实现对象调用方法
<?php class Person{ public $name="xiaoming"; function say(){ echo "i am ".$th ...
- 防止木马利用iframe框架来调用外域JS代码
<!--防止木马利用iframe框架来调用外域JS代码,不过滤自己网站的域名的框架网页开始--><SCRIPT LANGUAGE="JavaScript"> ...
- 利用C#与AE调用GP工具
转自原文 利用C#与AE调用GP工具 第一,首先要明确自己需要调用arctoolbox里面的什么工具,实现什么样的功能. 第三,编写command或tool工具,编写自己要的功能工具. 1)首先创建一 ...
- spring boot2X整合Consul一使用RestTemplate实现服务调用
Consul可以用于实现分布式系统的服务发现与配置 服务调用有两种方式: A.使用RestTemplate 进行服务调用 负载均衡——通过Ribbon注解RestTemplate B.使用Feign ...
- 使用RestTemplate进行服务调用的几种方式
首先我们在名为MSG的服务中定义一个简单的方法 @RestController public class ServerController { @GetMapping("/msg" ...
- Spring中RestTemplate进行Http调用
Spring中的RestTemplate类源自spring-web,http调用中设置超时时间.设置连接池管理等非常重要,保证了系统的可用性,避免了长时间连接不上或者等待数据返回,拖垮系统. 现贴出工 ...
- 利用Resttemplate进行put请求
开发中,最常用的是post.get这两种.今天我给大家展示一个利用put请求的demo,其实put请求跟post请求没啥区别,但是没有返回值. void put(String var1, @Nulla ...
随机推荐
- C++类 单冒号
1.继承 class Base { }; class Derived : public Base { }; 示列: class Base { public: int a=10; }; class ...
- 封装jQuery插件实现TAB切换
先上效果图: 直接上代码: index.html <!DOCTYPE html> <html lang="en"> <head> <met ...
- [NOIP2018校模拟赛]T2矩阵分组 Matrix
题目链接: 矩阵分组 分析: 这道题求的是两部分极差当中大的那个的最小值.对于这种求最值的问题,我们很自然(其实并没有)地想到二分答案. 这个题有两个结论: (好像当时看出来了第一个?然后发现下面都不 ...
- ubuntu14.04 在Dash中添加条目并把它放到启动器上
1. 创建studio.desktop,内容如下:注意路径. [Desktop Entry] Version=2.2.3 Name=Android Studio Exec=/home/你的用户名/an ...
- 深入理解spark streaming
spark streaming是建立在spark core之上的,也就说spark streaming任务最终执行还是依赖于RDD模型.在转化成最终的RDD模型执行前,spark streaming主 ...
- 基于webmagic的爬虫小应用
以前没有写过爬虫程序,最近两天就研究了一下java的爬虫框架webmagic.然后写了一个demo 写爬虫的基本思想: 1.抓取目标连接 2.根据页面中标签,抓捕你需要的内容 3.保存结果集 以下是实 ...
- Aappcloud 调到二级页面黑屏
PartnerHead3.html 后面多了一个点
- linux的top下buffer与cache的区别
buffer: 缓冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据 的区域.通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据 时,速度快的设备的操作进程不发 ...
- 【Jenkins】Jenkins配置从节点,实现远程主机调用功能
一.需求 使用Jenkins进行持续集成部署过程中,需要用到远端主机的处理功能.如部署到远程主机.文件备份等功能 二.思路 1.当远端主机为Linux系统时使用Publish Over SSH Plu ...
- InvocationTargetException异常的深入研究-servlet的setAttribute与getAttribute
在某项目中,前端jsp传入的用户id数据通过session域传入后台servlet进行处理的过程中,无意间出现了InvocationTargetException异常 前端部分代码如下:测试代码,非原 ...