http库 之 OKHttpUtil

源码位置

方便实用,个人感觉不错

依赖

xml 复制代码
<dependency>
    <groupId>io.github.admin4j</groupId>
    <artifactId>common-http-starter</artifactId>
    <version>0.7.5</version>
</dependency>

代码实践

java 复制代码
/**
 * 通用http的post接口,返回body的JsonNode对象
 * @param URI 资源地址
 * @param object post请求参数,requestBody
 */
private JsonNode CommonHttpRequest(String URI, Object object){
    JsonNode data = null;
    try {
    	//BaseURL为配置文件中配置的内容
        Response post = HttpUtil.post(BaseURL + URI, object);
        if (post == null || post.body() == null){
            log.error("no response, post or body is null");
            throw new Exception("no response");
        }
        //测试环境为springboot 2.x,所以使用的jackson
        ObjectMapper objectMapper = new ObjectMapper();
        JsonNode jsonNode = objectMapper.readTree(Objects.requireNonNull(post.body(), "No Response From server").string());
        log.info("response: {}", jsonNode);
        int code = jsonNode.get("code").asInt();
        if (code != 200){
            log.error("Request failed, code: [{}]", code);
            throw new Exception("server code error");
        }
        data = jsonNode.get("data");
    }catch (Exception e){
        log.error("Http process failed.", e);
        throw new BusinessException(CodeEnum.SYSTEM_EXCEPTION);
    }
    return data;
}

以上只是我写的一个测试函数,具体使用还是要看一下源码.

相关推荐
Sleepy MargulisItG7 小时前
【Linux网络编程】应用层协议:HTTP协议
linux·服务器·网络·http
小豪GO!13 小时前
HTTPS原理
网络协议·http·https
Neolnfra13 小时前
RCE(远程命令执行)漏洞全解析:从原理到实战
安全·web安全·http·网络安全·https·系统安全·可信计算技术
周杰伦_Jay13 小时前
【GRPC 和 HTTP】设计目标和底层实现
网络·网络协议·http
谢尔登15 小时前
HTTP 协议组成
网络·网络协议·http
头发那是一根不剩了15 小时前
测试环境如何生成自签名证书用于 HTTPS
网络协议·http·https
福大大架构师每日一题16 小时前
nginx 1.29.4 发布:支持 HTTP/2 后端与加密客户端问候(ECH),多项功能优化与修复
运维·nginx·http
全栈工程师修炼指南16 小时前
Nginx | HTTP 反向代理:对上游服务端返回响应处理实践
运维·网络·nginx·安全·http
bj_zhb16 小时前
Python 内置的 HTTP 服务
开发语言·python·http
余生H18 小时前
反向代理与 Forwarded 相关 Header 深度解析
javascript·nginx·http