mica-http的使用指南有哪些
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章为大家展示了mica-http的使用指南有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。mica-httpmica-http 是 okhttp 的
千家信息网最后更新 2025年12月02日mica-http的使用指南有哪些
本篇文章为大家展示了mica-http的使用指南有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
mica-http
mica-http 是 okhttp 的封装,Fluent 语法的 http 工具包,语法参考 HttpClient Fluent API。
使用
maven
net.dreamlu mica-http ${version}
gradle
compile("net.dreamlu:mica-http:${version}")使用文档
设定全局日志级别 NONE,BASIC,HEADERS,BODY, 默认:NONE
HttpRequest.setGlobalLog(LogLevel.BODY);
同步请求 url,方法支持 get、post、patch、put、delete
HttpRequest.get("https://www.baidu.com") .log(LogLevel.BASIC) //设定本次的日志级别,优先于全局 .addHeader("x-account-id", "mica001") // 添加 header .addCookie(new Cookie.Builder() // 添加 cookie .name("sid") .value("mica_user_001") .build() ) .query("q", "mica") //设置 url 参数,默认进行 url encode .queryEncoded("name", "encodedValue") .formBuilder() // 表单构造器,同类 multipartFormBuilder 文件上传表单 .add("id", 123123) // 表单参数 .execute() // 发起请求 .asJsonNode(); // 结果集转换,注:如果网络异常等会直接抛出异常。// 同类的方法有 asString、asBytes、asStream// json 类响应:asJsonNode、asValue、asList、asMap,采用 jackson 处理// xml、html响应:asDocument,asDomValue、asDomList采用的 jsoup 处理// file 文件:toFile同步
String html = HttpRequest.post("https://www.baidu.com") .execute() .onFailed((request, e) -> {// 网络等异常情况的消费处理,可无 e.printStackTrace(); }) .onResponse(ResponseSpec::asString);// 处理响应,有网络异常等直接返回 null同步
String text = HttpRequest.patch("https://www.baidu.com") .execute() .onSuccess(ResponseSpec::asString);// onSuccess http code in [200..300) 处理响应,有网络异常等直接返回 null异步请求
HttpRequest.delete("https://www.baidu.com") .async() // 开启异步 .onFailed((request, e) -> { // 异常时的处理 e.printStackTrace(); }) .onResponse(responseSpec -> { // 消费响应, 注意:响应的流只能读一次 int httpCode = responseSpec.code(); }) .onSuccessful(responseSpec -> { // 消费响应成功 http code in [200..300) // 注意:响应结果流只能读一次 JsonNode jsonNode = responseSpec.asJsonNode(); }) .execute(); // 异步最后发起请求示例代码1
// 设置全局日志级别HttpRequest.setGlobalLog(LogLevel.BODY);// 直接用 jackson json path 语法private String getUserEmail(String accessToken) { return HttpRequest.get("https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))") .addHeader("Host", "api.linkedin.com") .addHeader("Connection", "Keep-Alive") .addHeader("Authorization", "Bearer " + accessToken) .execute() .asJsonNode() .at("/elements/0/handle~0/emailAddress") .asText();}// 异步public static void test() { HttpRequest.post("https://www.baidu.com/do-stuff") .log(LogLevel.BASIC) // 日志级别 .formBuilder() // 表单构造器 .add("a", "b") .async() // 使用异步 .onSuccessful(System.out::println) // 异步成功时的函数 .onFailed((request, e) -> { // 异步失败,可无 e.printStackTrace(); }) .execute();}示例代码2
HttpRequest.setGlobalLog(LogLevel.BODY);// 同步,异常时 返回 nullString html = HttpRequest.get("www.baidu.com") .connectTimeout(Duration.ofSeconds(1000)) .query("test", "a") .query("name", "張三") .query("x", 1) .query("abd", Base64Util.encode("123&$#%")) .queryEncoded("abc", Base64Util.encode("123&$#%")) .execute() .onFailed(((request, e) -> { e.printStackTrace(); })) .onSuccess(ResponseSpec::asString);System.out.println(html);// 同步调用,返回 Optional,异常时返回 Optional.empty()Optional opt = HttpRequest.post(URI.create("https://www.baidu.com")) .bodyString("Important stuff") .formBuilder() .add("a", "b") .execute() .onSuccessOpt(ResponseSpec::asString);// 同步,成功时消费(处理) responseHttpRequest.post("https://www.baidu.com/some-form") .addHeader("X-Custom-header", "stuff") .execute() .onSuccessful(responseSpec -> { String text = responseSpec.asString(); System.out.println(text); });// 同步,异常时直接抛出HttpRequest.get("https://www.baidu.com/some-form") .execute() .asString();// async,异步执行结果,失败时打印堆栈HttpRequest.get("https://www.baidu.com/some-form") .async() .onSuccessful(System.out::println) .onFailed((request, e) -> { e.printStackTrace(); }) .execute(); 上述内容就是mica-http的使用指南有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
同步
处理
日志
级别
网络
表单
消费
成功
全局
结果
语法
使用指南
指南
代码
内容
参数
同类
技能
文件
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ftp客户端和服务器的端口号
数据库锁的创建节点
郑州工业软件开发哪家可靠
wamp默认数据库账号密码
php获取数据库行数据
数据库基础版升级版
河北erp 软件开发的行业须知
浙江网络技术资费
服务器架构设计
国内交通信号灯数据库
上海金融软件开发工程师收入
苹果se2id连接服务器连不上
软件开发所需课程 大学
张北县网络安全培训学校
火影忍者各服务器推荐
东富龙隔离器数据库
sip服务器软件哪个好
麻将软件开发工期
卫计局网络安全规章制度
无限级节点的数据库设置
公务人员触犯网络安全法
我的世界服务器刷硬币
全民国家安全教育网络安全小常识
数据库打开方式包括
销售分析软件开发商
中国移动宽带总服务器是电信吗
2020网络安全宣传周网站
数据库公交车调度管理
网络安全策略的三个原则
文件服务器管理软件对比