千家信息网

mica-http的使用指南有哪些

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章为大家展示了mica-http的使用指南有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。mica-httpmica-http 是 okhttp 的
千家信息网最后更新 2026年11月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安全错误 数据库的锁怎样保障安全 什么是科技互联网 中智农互联网科技 南京欣网互联网络科技有限公司 苏州找大状互联网科技有限公司 互联网科技保险 有木互联网科技 苏州大垚互联网科技 青岛中康互联网医疗科技有限公司 宁波青枫互联网科技有限公司 以后互联网后是啥科技 汽车互联网创新科技园 互联网企业和科技型企业 茂名市互联网科技产业园 湖南诚度互联网科技有限公司 岳阳华臻互联网科技有限公司 互联网金融科技名词解释 美国互联网科技实力 中国科技和美国互联网 广州三三互联网科技有限公司 玉溪新华互联网科技怎么选 互联网高科技 苏州找大状互联网科技有限公司 科技类互联网 互联网 卓越科技 奇酷互联网科技公司 互联网金融科技创新 互联网对科技的发展 元气玛特互联网科技公司是外包吗 陕西九四连强互联网科技有限公司 宁波允成互联网科技有限公司
0