http方法调用接口

ops/2024/9/22 18:15:49/
http://www.w3.org/2000/svg" style="display: none;">

调用post方法

java">public static String doPostWeChat(String accessToken, String url, String tradeCode) throws Exception {// 创建一个默认的 HTTP 客户端实例CloseableHttpClient client = HttpClients.createDefault();CloseableHttpResponse response = null; // 响应对象初始化为空String context = StringUtils.EMPTY; // 初始化返回内容为空字符串HttpPost method = new HttpPost(url); // 创建 HTTP POST 请求对象,指定请求的 URLtry {// 配置请求超时时间RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000) // 读取数据超时时间(20秒).setConnectTimeout(40000) // 连接超时时间(40秒).setConnectionRequestTimeout(20000) // 从连接池获取连接的超时时间(20秒).build();method.setConfig(requestConfig); // 将配置应用到请求对象method.addHeader("Authorization", accessToken); // 添加授权头部method.addHeader("company", tradeCode); // 添加公司代码头部log.info(String.format("%s-----%s", "", "accessToken="+accessToken + "准备数据请求")); // 记录日志,表明请求准备发送response = client.execute(method); // 发送请求并获取响应log.info(String.format("%s-----%s", "", "accessToken="+accessToken + "请求已发送")); // 记录日志,表明请求已发送HttpEntity resEntity = response.getEntity(); // 获取响应实体context = EntityUtils.toString(resEntity, "UTF-8"); // 将响应实体转换为字符串(UTF-8 编码)} catch (Exception e) {throw e; // 抛出异常,供调用者处理} finally {if (response != null) {try {EntityUtils.consume(response.getEntity()); // 确保响应实体被完全消费response.close(); // 关闭响应对象method.abort(); // 中止请求client.close(); // 关闭 HTTP 客户端} catch (IOException e) {// 在此可以添加日志记录或其他处理逻辑}}}return context; // 返回响应内容
}

调用get接口

java">import org.apache.http.client.methods.CloseableHttpResponse;  
import org.apache.http.client.methods.HttpGet;  
import org.apache.http.impl.client.CloseableHttpClient;  
import org.apache.http.impl.client.HttpClients;  
import org.apache.http.util.EntityUtils;  
import org.apache.commons.lang3.StringUtils;  import java.io.IOException;  public static String doGetWeChat(String accessToken, String url, String tradeCode) throws IOException {  // 创建一个默认的 HTTP 客户端实例  try (CloseableHttpClient client = HttpClients.createDefault()) {  // 创建 HTTP GET 请求对象,并添加查询参数(如果需要的话)  // 注意:这里假设url已经包含了所有必要的查询参数,或者我们将通过StringBuilder来动态构建它  // 如果需要添加查询参数,可以使用URIBuilder  HttpGet method = new HttpGet(url + "?accessToken=" + accessToken + "&tradeCode=" + tradeCode);  // 配置请求超时时间(可选,根据需要设置)  // 如果不需要,可以省略这一步  // ...(与POST请求中相同的配置方式)  // 发送请求并获取响应  try (CloseableHttpResponse response = client.execute(method)) {  // 获取响应实体  String context = EntityUtils.toString(response.getEntity(), "UTF-8"); // 将响应实体转换为字符串(UTF-8 编码)  // 可以在这里添加对响应状态码的检查  // 例如:if (response.getStatusLine().getStatusCode() == 200) { ... }  return context; // 返回响应内容  }  } catch (IOException e) {  // 处理可能的异常,比如网络问题、解析问题等  throw e; // 或者根据需要处理异常,比如记录日志、返回错误信息等  }  
}  // 注意:  
// 1. 这里使用了try-with-resources语句来自动关闭CloseableHttpClient和CloseableHttpResponse,以确保资源被正确释放。  
// 2. 如果URL中包含敏感信息(如accessToken),请确保使用HTTPS来保护通信安全。  
// 3. 如果URL中的查询参数较多或构建逻辑较复杂,建议使用URIBuilder来构建URL,以避免URL编码等问题。

http://www.ppmy.cn/ops/103329.html

相关文章

网络层 III(划分子网和构造超网)【★★★★★★】

(★★)代表非常重要的知识点,(★)代表重要的知识点。 一、网络层转发分组的过程 分组转发都是基于目的主机所在网络的,这是因为互联网上的网络数远小于主机数,这样可以极大地压缩转发表的大小。…

(三)Kafka离线安装 - ZooKeeper开机自启

手动启动方式 一般通过指令手动来启动zookeeper的方法是,先进入到zookeeper的安装目录下的bin目录,然后执行启动指令。 cd /usr/local/zookeeper/zookeeper-3.8.4/bin/zkServer.sh start 停止指令 zkServer.sh stop 查看状态 zkServer.sh status 上…

pdf.js如何支持base64的查看

1.pdf.js 作为一个查看在线阅读pdf的软件,常常被运用到前端开发中,但是如何让pdf支持base64的查看,这边就需要去进行修改一些代码了 这边我们就进行开发修改 首先去下载 https://mozilla.github.io/pdf.js/ 当然了,低版本的可以…

【高级编程】万字整理集合框架 迭代器 泛型(含方法案例)

文章目录 集合框架集合接口集合类ArrayListLinkedListHashSet 迭代器 IteratorMap 接口泛型Collections 工具类 集合框架 如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架 Java集合框架提供了一套性能优良、使用方便的…

小白学深度学习:知识蒸馏研究综述

为了能够在低资源设备上运行深度学习模型,需要研发高效的小规模网络。知识蒸馏是获取高效小规模网络的一种新兴方法,其主要思想是将学习能力强的复杂教师模型中的“知识”迁移到简单的学生模型中。 知识蒸馏介绍 知识蒸馏是一种教师-学生(Teacher-Stud…

easyExcel 导入时,校验每个单元格数据

目录 1、定义excel导入文件对应的数据接收类 2、定义属性转换器 3、定义数据解析监听器 4、解析文件 1、定义excel导入文件对应的数据接收类 package com.ruoyi.project.domain.dto;import com.alibaba.excel.annotation.ExcelProperty; import com.ruoyi.project.impot…

基于live555开发的多线程RTSPServer轻量级流媒体服务器EasyRTSPServer开源代码及其调用示例,PC、嵌入式、Android全通用

EasyRTSPServer参考live555 testProg中的testOnDemandRTSPServer示例程序,将一个live555 testOnDemandRTSPServer封装在一个类中,例如,我们称为Class EasyRTSPServer,在EasyRTSPServer_Create接口调用时,我们新建一个E…

自动化01:认识接线端子

1、TB接线端子: 2.SAK组合接线端子: 3.UK组合接线端子: 4.插拔式接线端子: 5.零线接线桩: 6.零线接线排