远程调用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 ...
随机推荐
- Linux下使用Docker部署nacos-server(单机模式),丧心病狂的我在半夜给UCloud提交了一份工单
1. 拉取nacos-server镜像 进入 Docker Hub 查看nacos-server最新版本为 nacos-server:1.4.0 配置阿里云镜像加速 sudo mkdir -p /et ...
- 20190705_关于winform程序修改程序名后, 报未将对象引用设置到对象的实例
winform做了一个小项目, 其中要用到数据库连接, 字符串, private string ConnStringSource = System.Configuration.Configuratio ...
- jupyter notebook 安装记录
conda install jupyterconda install jupyter_nbextensions_configuratorconda install jupyter_contrib_nb ...
- PyQt(Python+Qt)学习随笔:Model/View中的枚举类 Qt.MatchFlag的取值及含义
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 枚举类 Qt.MatchFlag描述在模型中搜索项时可以使用的匹配类型,它可以在QStandardI ...
- java视频流的断点续传功能
项目中需要实现浏览器中视频的拖动问题解决 /** * 视频文件的断点续传功能 * @param path 文件路径 * @param request request * @param response ...
- 【游记】CSp2020
同步发表于洛谷博客 初赛 Day -2 做了个模拟(非洛谷),只有一丁点分,显然过不了 (盗张 i am ak f 的图) Day 0 颓,颓,颓,又做了一套模拟,坚定了退役的信心. Day 1 人好 ...
- 【题解】「UVA681」Convex Hull Finding
更改了一下程序的错误. Translation 找出凸包,然后逆时针输出每个点,测试数据中没有相邻的边是共线的.多测. Solution 首先推销一下作者的笔记 由此进入>>> ( ...
- NOI2020网上同步赛 游记
Day1 预计得分:\(32pts\)(我裂开了--) T1 美食家 表示考试的时候想到了关于矩阵快速幂的想法,甚至连分段后怎么处理都想好了,但是没有想到拆点,还有不知道怎么处理重边(这个考虑是多余的 ...
- 【AtCoder AGC023F】01 on Tree(贪心)
Description 给定一颗 \(n\) 个结点的树,每个点有一个点权 \(v\).点权只可能为 \(0\) 或 \(1\). 现有一个空数列,每次可以向数列尾部添加一个点 \(i\) 的点权 \ ...
- MySQL技术内幕InnoDB存储引擎(七)——事务
什么是数据库的事务? 事务是访问并更新数据库中各种数据的一个程序执行单元.事务也是数据库区别于文件系统的一个重要特性. 事务需要满足的特性 1.原子性 原子性就是指数据库中的一个完整的事务是不可分割的 ...