http方法调用接口

调用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 请求对象,指定请求的 URL
    try {
        // 配置请求超时时间
        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编码等问题。
相关推荐
@insist1233 分钟前
信息安全工程师考点精讲:身份认证核心原理与分类体系(上篇)
大数据·网络·分类·信息安全工程师·软件水平考试
九转成圣14 分钟前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
SmartRadio18 分钟前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
_.Switch37 分钟前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
直奔標竿44 分钟前
Java开发者AI转型第二十七课!Spring AI 个人知识库实战(六)——全栈闭环收官,解锁前端流式渲染终极技巧
java·开发语言·前端·人工智能·后端·spring
金銀銅鐵1 小时前
[java] 编译之后的记录类(Record Classes)长什么样子(上)
java·jvm·后端
金色光环2 小时前
FreeModbus释放底层的 TCP 监听端口
服务器·网络·tcp/ip
数智化精益手记局2 小时前
拆解物料管理erp系统的核心功能,看物料管理erp系统如何解决库存积压与缺料难题
大数据·网络·人工智能·安全·信息可视化·精益工程
野生技术架构师3 小时前
金三银四面试总结篇,汇总 Java 面试突击班后的面试小册
java·面试·职场和发展