mica-http的使用指南有哪些
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,本篇文章为大家展示了mica-http的使用指南有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。mica-httpmica-http 是 okhttp 的
千家信息网最后更新 2025年01月24日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()Optionalopt = 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安全错误
数据库的锁怎样保障安全
数据库可以随意借用吗
郑州软件开发哪个单位好
远程办公后网络安全吗
阜阳计算机网络技术
网络安全工程师图
全区网络安全大会讲话
软件开发东找78 867
计算机网络技术对世界的影响
电商数据库使用什么系统
河北省网络安全考试
浪潮信息制定服务器
服务器如何分配独立ip
如何加快数据库查询时间
妇联网络安全周宣传活动
专科有没有软件开发
计算机网络技术人员的内容
网络技术能力与专长
软件开发电脑性能
大学网络安全预案
sql数据库入门视频
云服务器1核2g做游戏服务器
各国服务器图标
珠海旅游软件开发服务费
联想m437安装服务器系统
如何在手机上登录云服务器
衡量数据库的大小
5e进服务器在大厅指令
大学网络安全预案
乌鲁木齐网络安全相关培训哪家好
fivem服务器怎么设置中文