【spring】RestTemplate发送请求,请求第三方接口 的几种请求方式POST,GET,DELETE,PUSH
org.springframework.web.client.RestTemplate
参考地址:http://www.cnblogs.com/UniqueColor/p/7123347.html
GitHub源码地址:
使用示例代码:
public int doClear(List<CodeChangeOption> typeList, CodeChangeLog codeChangeLog) {
AdminUser adminUser = AdminUser.createFeignUser("ms-code");
List<String> scList = codeChangeLog.getScList();
HttpHeaders requestHeaders = new HttpHeaders();
MediaType contentType = MediaType.parseMediaType("application/json; charset=UTF-8");
requestHeaders.setContentType(contentType);
requestHeaders.add("x-admin-info", JSON.toJSONString(adminUser));
CodeChangeReqBean reqBean = new CodeChangeReqBean();
reqBean.setScList(scList);
HttpEntity<String> requestEntity = new HttpEntity<String>(JSON.toJSONString(reqBean), requestHeaders);
JSONObject jsonObj = new JSONObject();
//失败个数
int failNum = typeList.size();
for (CodeChangeOption clearType : typeList) {
String uid = clearType.getUid();
int reqSuccess = CodeChangeLog.CHANGE_FAIL;
//发送清除请求
String url = "http://" + clearType.getAppName() + clearType.getApiPath();
ResponseEntity<String> response = null;
try {
response = lunaRestTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
if (response != null && response.getStatusCode() == HttpStatus.OK) {
//请求成功
String body = response.getBody();
JSONObject parseObject = JSON.parseObject(body);
if (parseObject.getBoolean("success")) {
// type : success
failNum--;
reqSuccess = CodeChangeLog.CHANGE_SUCCESS;
}
}
} catch (Exception e) {
e.printStackTrace();
}
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", clearType.getName());
jsonObject.put("success", reqSuccess);
jsonObj.put(uid, jsonObject);
}
codeChangeLog.setChangeJsonString(jsonObj.toJSONString());
if(failNum == 0){
codeChangeLog.setSuccess(CodeChangeLog.CHANGE_SUCCESS);
}else{
codeChangeLog.setSuccess(CodeChangeLog.CHANGE_FAIL);
}
//修改日志记录
return mapper.update(codeChangeLog);
}
【spring】RestTemplate发送请求,请求第三方接口 的几种请求方式POST,GET,DELETE,PUSH的更多相关文章
- 使用Typescript重构axios(十九)——请求取消功能:实现第二种使用方式
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- 使用Typescript重构axios(二十)——请求取消功能:实现第一种使用方式
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- C#接口的三种实现方式
转自原文C#接口的三种实现方式 public interface MyInterface { /// 下面三个方法的签名都是 /// .method public hidebysig newslot ...
- Spring学习笔记(6)——IoC的三种注入方式
1.接口注入(不推荐) 2.构造器注入(死的应用) 3.getter,setter方式注入(比较常用) Type1 接口注入 我们常常借助接口来将调用者与实现者分离.如: public class C ...
- Spring Boot2 系列教程(十六)定时任务的两种实现方式
在 Spring + SpringMVC 环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解,另一种就是使用第三方框架 Qua ...
- JavaScript实现接口的三种经典方式
/* 接口:提供一种说明一个对象应该有哪些方法的手段 js中有三种方式实现接口: 1 注释描述接口 2 属性检测接口 3 鸭式辨型接口 */ /* 1 注释描述接口: 不推荐 优点: 利用注解,给出参 ...
- Java Callable接口与Future接口的两种使用方式
Java Callable.Future的两种使用方式Callable+Futurepublic class Test { public static void main(String[] args) ...
- PHP-----------HTTP请求的第三方接口
开发中常常遇到接口请求这个功能,后台也不例外,因为遇到了,所以写一篇. 前段时间做商城后台时,需要用到第三方物流接口查询物流信息. post: /**** * @param $url * @param ...
- 发送http请求,get和post两种请求方式
GET请求 GetMethod getMethod=null; String datas = "json=" + plain; HttpClient httpClient = ne ...
随机推荐
- CentOS系统yum源配置修改、yum安装软件包源码包出错解决办法apt.sw.be couldn't connect to host
yum安装包时报错: Could not retrieve mirrorlist http://mirrorlist.repoforge.org/el6/mirrors-rpmforge error ...
- hive(七)hive-运行方式、GUI接口、权限管理
1.Hive运行方式: 命令行方式cli:控制台模式 脚本运行方式(实际生产环境中用最多) JDBC方式:hiveserver2 web GUI接口 (hwi.hue等) 1.1Hive在CLI模 ...
- 快速地从Redhat系转Ubuntu系
ubuntu官网的,https://help.ubuntu.com/community/SwitchingToUbuntu/FromLinux/RedHatEnterpriseLinuxAndFedo ...
- 【hdoj_1133】Buy the Ticket(卡特兰数+大数)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1133 题目的意思是,m个人只有50元钱,n个人只有100元整钱,票价50元/人.现在售票厅没钱,只有50元 ...
- Spring 中Bean的装配方式
最近又买了一本介绍SSM框架的书,是由黑马程序员编写的,书上讲的很好理解,边看边总结一下.主要总结一下bean的装配方式. Bean的装配可以理解为依赖系统注入,Bean的装配方式即Bean依赖注入的 ...
- WordPress 用户管理插件 WP User Manager
WP User Manager 是一个较新的用户管理插件,可以在前端实现 用户注册.登录.找回密码.修改个人资料.修改密码等功能,如果你在找这方面的插件,WP User Manager 应该是一个不错 ...
- WPF 获取指定文件的Icon
C# var icon = System.Drawing.Icon.ExtractAssociatedIcon(@"filepath"); var m = new MemorySt ...
- 【LOJ】#2586. 「APIO2018」选圆圈
题解 不旋转坐标系,TLE,旋转坐标系,最慢一个点0.5s--maya,出题人数据水平很高了-- 好吧,如果你不旋转坐标系,写一个正确性和复杂度未知的K - D树,没有优化,你可以得到87分的好成绩 ...
- zabbix-python api(一)
获取zabbix token #!/usr/bin/env python #coding=utf-8 import json import urllib2 def Gettoken(server_ip ...
- 安卓 自定义ViewGroup
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha 指定的 布局参数 在计算时候方法 中 计算 所有 子视图的 宽高, 然后根据这些 计算出 ...