远程调用get和post请求 将返回结果转换成实体类
package org.springblade.desk.utils; import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.springblade.core.tool.utils.Func; /**
* create by Dell on 2020/6/17
*/
public class HttpUtil {
//get请求
public static String doGet(String url,String authValue){
String result = null;
CloseableHttpClient httpClient = HttpClients.createDefault();
ResponseHandler<String> responseHandler = new BasicResponseHandler();
try {
HttpGet httpGet = new HttpGet(url);
httpGet.setHeader("Content-type", "application/json");
if(!Func.isEmpty(authValue)){
httpGet.setHeader("Authorization","Bearer "+authValue);
}
result = httpClient.execute(httpGet, responseHandler);
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
httpClient.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
return result ;
} // post请求参数为json格式
public static String doJsonPost(String url, String json,String authValue) {
String result = null;
CloseableHttpClient httpClient = HttpClients.createDefault();
ResponseHandler<String> responseHandler = new BasicResponseHandler();
try {
HttpPost httpPost = new HttpPost(url);
StringEntity requestEntity = new StringEntity(json, "utf-8");
requestEntity.setContentEncoding("UTF-8");
httpPost.setHeader("Content-type", "application/json");
if(!Func.isEmpty(authValue)){
httpPost.setHeader("Authorization","Bearer "+authValue);
}
httpPost.setEntity(requestEntity);
result = httpClient.execute(httpPost, responseHandler);
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try {
httpClient.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
return result;
}
}
public class PartnerController extends BladeController implements CacheNames {
/**
* 初始化
*
*/
@GetMapping("/init")
@ApiOperationSupport(order = 1)
@ApiOperation(value = "初始化", notes = "传入参数")
public R<PartnerInitData> init(String company, String cardType) {
String url=String.format(SapConstant.PARTNER_INIT +"?Company={0}&CardType={1}",company,cardType);
String res = HttpUtil.doGet(url,null);
PartnerInitResult result = JSONObject.parseObject(res, PartnerInitResult.class);
return R.data(result.getData());
}
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 2)
@ApiOperation(value = "详情", notes = "传入参数")
public R<PartnerDetailData> detail(String company, String cardCode) {
String url = SapConstant.PARTNER_DETAIL +"?Company="+company+"&CardCode="+cardCode;
String res = HttpUtil.doGet(url,SapUtil.getReadToken());
PartnerDetailResult result = JSONObject.parseObject(res, PartnerDetailResult.class);
return R.data(result.getData());
}
/**
* 查询
*/
@GetMapping("/query")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "查询", notes = "传入参数")
public R<List<HashMap<String,String>>> query(String company, String cardType, String partner) {
String url = SapConstant.PARTNER_QUERY +"?Company="+company+"&CardType="+cardType+"&Partner="+partner;
String res = HttpUtil.doGet(url,SapUtil.getReadToken());
PartnerQueryResult result = JSONObject.parseObject(res, PartnerQueryResult.class);
return R.data(result.getData());
}
/**
* 特殊价格详情
*/
@GetMapping("/specprices/detail")
@ApiOperationSupport(order = 4)
@ApiOperation(value = "特殊价格详情", notes = "传入参数")
public R<List<HashMap<String,Object>>> specPricesDetail(String company, String cardCode) {
String url = SapConstant.PARTNER_SPECPRICES_DETAIL +"?Company="+company+"&CardCode="+cardCode;
String res = HttpUtil.doGet(url,SapUtil.getReadToken());
SpecPricesDetailResult result = JSONObject.parseObject(res, SpecPricesDetailResult.class);
return R.data(result.getData());
}
/**
* 特殊价格查询
*/
@GetMapping("/specprices/query")
@ApiOperationSupport(order = 5)
@ApiOperation(value = "特殊价格查询", notes = "传入参数")
public R<List<HashMap<String,Object>>> specPricesQuery(String company, String cardCode, String itemCode) {
String url = SapConstant.PARTNER_SPECPRICES_QUERY +"?Company="+company+"&CardCode="+cardCode+"&ItemCode="+itemCode;
String res = HttpUtil.doGet(url,SapUtil.getReadToken());
SpecPricesQueryResult result = JSONObject.parseObject(res, SpecPricesQueryResult.class);
return R.data(result.getData());
}
}
远程调用get和post请求 将返回结果转换成实体类的更多相关文章
- Web API-如何将Controller的返回值转换成HTTP response消息
https://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization https://co ...
- JavaWeb之如何把请求数据转成实体类
JavaWeb之如何把请求数据转成实体类 自己写个工具类加入下面两个静态方法 自定一个注解类DateTimeFormatting 调用方式User user = util.ObjectFromMap( ...
- HttpURL连接远程serverGet和Post方式请求并返回数据
查看原文:http://www.ibloger.net/article/1813.html package cn.gis; import java.io.BufferedReader; import ...
- SpringMVC中使用@ResponseBody注解将任意POJO对象返回值转换成json进行返回
@ResponseBody 作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区. ...
- JS - 把类似document.querySelectorAll(".xxx")、document.getElementsByName("xxx")这种方法的返回结果转换成数组对象
var btns = document.querySelectorAll(".btn");console.log(btns instanceof Array); // falseb ...
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_9 Mybatis中的返回值深入-解决实体类属性和数据库列名不对应的两种方式
sql语句里面起别名的方式 测试查询的方法 数据字段 都有值了. 配置查询接口列表和实体类属性名对应关系 id可以随便起名 主键的对应 再次测试,并没有封装成功 这是应为定义的对应关系并没有使用. 当 ...
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_8 Mybatis中的返回值深入-调整实体类属性解决增和改方法的报错
如果实体类和数据库表内的字段没有保持一致 修改了属性子弹. 重新生成getter和setter还有toString方法 测试类里面,相关set的方法就都会报错. 只需要修改为最新的set方法就可以了. ...
- hql语句查询实体类采用list方法的返回结果集
在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况:1.查询全部字段的情况下,如"from 实体类", ...
- 使用Java的URL/HttpURLConnection进行远程调用(POST请求)
利用Java的HttpURLConnection进行远程url请求(调用远程接口) 测试类:请求类型为json,以post方式请求,利用OutputStream写入数据 实体类: public cla ...
随机推荐
- 我与PHP,ULM和Vue.js不得不说的故事(我与PHP白月光的那些事儿之第三年的见异思迁番外篇)
关于PHP的认知 -----恍惚间眸眼像极了一位故人 第一年遇见,那时的它还稚嫩懵懂.像白纸一样的脸,极容易读懂.于是放荡不羁,不放真心.稍微用心,它便能高兴好久.初识它时它叫C语言,浅尝却不觉其难过 ...
- day1(Django)
1,web项目工作流程 1.1 了解web程序工作流程 1.2 django生命周期 2,django介绍 目的:了解Django框架的作用和特点作用: 简便.快速的开发数据库驱动的网站 Djan ...
- spring + quartz 分布式自定义注解
相关技术 本文采用spring + quartz的方案.使用mysql作为任务的持久化,支持分布式. 自定义注解 1.启用定时任务 @Target(ElementType.TYPE) @Retenti ...
- SpringCloud 源码系列(3)—— 注册中心 Eureka(下)
十一.Eureka Server 集群 在实际的生产环境中,可能有几十个或者几百个的微服务实例,Eureka Server 承担了非常高的负载,而且为了保证注册中心高可用,一般都要部署成集群的,下面就 ...
- [GXYCTF2019] MISC杂项题
buuoj复现 1,佛系青年 下载了之后是一个加密的txt文件和一张图片 分析图片无果,很讨厌这种脑洞题,MISC应该给一点正常的线索加部分脑洞而不是出干扰信息来故意让选手走错方向,当时比赛做这道题的 ...
- ES6新特性之箭头函数与function的区别
写法不同 // function的写法 function fn(a, b){ return a+b; } // 箭头函数的写法 let foo = (a, b) =>{ return a + b ...
- 【自用】Notice
读题 不要把 \(\sum a \oplus b\) 看成异或和. 注意读完整,有可能对原有符号有新的约定,不要想当然. 注意模数的 0 数清楚. 卡常&时间 打题之前一般先搞个自己的缺省源. ...
- 【题解】「CF1373B」01 Game
这题好水,就是简单的模拟+字符串. \(\sf Translation\) 给定一个 \(01\) 串,如果 \(0\) 出现的次数和 \(1\) 出现的次数的最小值是奇数,输出 DA ,否则输出 N ...
- Zabbix自定义模板监控多个url接口
一.脚本配置 1.监控脚本 /etc/zabbix/zabbix_agent2.d/scripts/web_site_code_status.sh #!/bin/bash url_discovery( ...
- writeset参数配置探索——究竟在哪个角色上配置参数?
关于writeset,一直以来我都是所有节点同时配置下面参数: binlog_transaction_dependency_tracking=WRITESET transaction_write_se ...