当前位置: 首页 > article >正文

java调用外部API,通过http请求,HttpGet和HttpPost方式实现

public Map<String, Object> h5Pay(HttpServletRequest request, PaymentUser paymentUser) throws IOException {
 
 
//2.调用下单API,接口调用地址
HttpPost httpPost = new HttpPost("www.baidu.com")
//设置请求体(接口必要参数)
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("appid", wxPayConfig.getAppid());
paramMap.put("mchid", wxPayConfig.getMchId());
paramMap.put("description",paymentUser.getDeptName()+"-智慧党建缴费");
paramMap.put("out_trade_no", StringUtils.createOrderNum());
Map<String, Object> amountMap = new HashMap<>();
amountMap.put("total",paymentUser.getTotal()*100);
amountMap.put("currency", "CNY");
paramMap.put("amount",amountMap);

//参数转成json格式
Gson gson = new Gson();
String requestJson = gson.toJson(paramMap);
//将json转成StringEntity对象
StringEntity entity = new StringEntity(requestJson, "utf-8");
entity.setContentType("application/json");
httpPost.setEntity(entity);
httpPost.setHeader("Accept", "application/json");
//发送请求
CloseableHttpClient closeableHttpClient = HttpClients.createDefault();
CloseableHttpResponse response = closeableHttpClient.execute(httpPost);
//4.获取相应结果
String bodyString = EntityUtils.toString(response.getEntity()); //请求后得到的响应体
//状态码
int statusCode = response.getStatusLine().getStatusCode();
//如果处理成功(带响应体的)
if (statusCode == 200) {
   log.info("请求成功 : " + bodyString);
}
//把body中的信息转成map ,直接返回
Map<String, String> resultMap = gson.fromJson(bodyString, HashMap.class);
    return resultMap ;
}

http://www.kler.cn/a/471197.html

相关文章:

  • php 多进程那点事,用 swoole 如何解决呢 ?
  • STM32-WWDG/IWDG看门狗
  • C#—Task异步的常用方法及TaskFactory工厂类详解
  • 面向对象的思维hong
  • PixPin—— 高效截图工具的下载与使用攻略
  • 新年到了!使用Python创建一个简易的接金元宝游戏
  • Elixir语言的正则表达式
  • HDFS异构存储和存储策略
  • 51单片机——步进电机模块
  • 使用 SAML 2.0协议需要注意的安全问题
  • .net core 线程锁,互斥锁,自旋锁,混合锁
  • shell-条件判断
  • iOS - 线程与AutoreleasePoolPage
  • 全覆盖路径规划算法之BCD源码实现(The Boustrophedon Cellular Decomposition)
  • linux下多个硬盘划分到同一挂载点
  • 电子应用设计方案87:智能AI收纳箱系统设计
  • SSR 【1】【nuxt安装】
  • pytorch torch.full_like函数介绍
  • 主板疑难杂症之解析(Analysis of Difficult and Miscellaneous Problems of Motherboard)
  • LogMiner
  • 【shell编程】报错信息:bash: bad file descriptor(包含6种解决方法)
  • Blazor用户身份验证状态详解
  • MySQL数据库 中的锁
  • 微服务登录解决方案
  • 如何申请LabVIEW软件著作权?
  • C# OpenCV机器视觉:背景减除与前景分离