AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

我愛說實話,Mica-Http 超好用!

來源: 責編: 時間:2024-01-26 09:00:14 222觀看
導讀一、簡介mica-http 是基于 okhttp 的封裝,提供了 Fluent 語法的 http 工具包。mica-http 的語法簡單易懂,同時還具有更好的性能和更高的安全性(自動關閉資源)。另外 mica-http 帶有 http 請求日志打印功能,二、快速上手1.1

一、簡介

mica-http 是基于 okhttp 的封裝,提供了 Fluent 語法的 http 工具包。mica-http 的語法簡單易懂,同時還具有更好的性能和更高的安全性(自動關閉資源)。另外 mica-http 帶有 http 請求日志打印功能,FbU28資訊網——每日最新資訊28at.com

二、快速上手

1.1 導入依賴

<dependency> <groupId>net.dreamlu</groupId> <artifactId>mica-http</artifactId> <version>2.7.18.1</version></dependency>

1.2 快速開始

String html = HttpRequest.get("https://www.baidu.com") .useConsoleLog() // 日志,同類有useSlf4jLog()和useLog(log::info),日志級別默認為 BODY .execute()   // 執行,這里并非正在執行,這里只是轉換成了執行對象 .asString();     // 真正行并轉換結果System.out.println(html);

1.3 異步請求

// 發送異步請求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.4 API說明

// 同步請求 url,方法支持 get、post、patch、put、deleteHttpRequest.get("https://www.baidu.com/{param1}/{param2}")    // 使用 Slf4j 日志 .useSlf4jLog()     // url 路徑參數處理 .pathParam("param1", "abc1")  .pathParam("param2", "abc2")    // 添加 header .addHeader("x-account-id", "mica001")     // 添加 cookie .addCookie(builder -> builder.domain("www.baidu.com").name("name").value("value"))  // 設置 url 請求參數,默認進行 url encode    .query("q", "mica")  .queryEncoded("name", "encodedValue")    // 對結果集進行斷言重試 .retryOn(responseSpec -> !responseSpec.isOk())     // 設置代理 .proxy(InetSocketAddress.createUnresolved("127.0.0.1", 8080))     // 表單構造器,同類 multipartFormBuilder 文件上傳表單構造器 .formBuilder()    // 表單參數 .add("id", 123123)      // 發起請求 .execute()    // 結果集轉換,注:如果網絡異常等會直接拋出異常,當然你還可以使用 onResponse、onSuccess 處理 .asJsonNode();// 同類的方法有 asString、asBytes// json 類響應:asJsonNode、asValue、asList、asMap、atJsonPath等,采用 jackson 處理// file 文件:toFile// 轉換成文件上傳的 Part:asPart 系列方法。

1.5 全局配置

全局日志配置:FbU28資訊網——每日最新資訊28at.com

// 設定全局日志級別 **NONE**(不打印日志)、 **BASIC**(只打印請求行和響應行)、 **HEADERS**(在BASIC的基礎上打印出請求頭)、 **BODY**(在BASIC的基礎上打印出請求和響應體)HttpRequest.setGlobalLog(LogLevel.BODY);// 設置控制臺日志,用于沒有日志依賴的 sdk 開發時使用HttpRequest.setGlobalLog(HttpLogger.Console, LogLevel.BODY);// 當然你也可以設定為自己的 log,這樣就不用把 **net.dreamlu.mica.http** 包的日志設置為 info 級別。HttpRequest.setGlobalLog(log::info);

自定義 OkHttpClientFbU28資訊網——每日最新資訊28at.com

OkHttpClient httpClient = new OkHttpClient.Builder() .build();HttpRequest.setHttpClient(httpClient);

1.6 Cookie管理

默認內置了 InMemoryCookieManager,會自動保存和使用 cookie,另外可以自定義實現 okhttp 的 CookieJar。FbU28資訊網——每日最新資訊28at.com

InMemoryCookieManager cookieManager = new InMemoryCookieManager();HttpRequest.get("http://fast.dreamlu.net/api/auth/captcha") .cookieManager(cookieManager) .execute() .asString();

三、性能優異

http 壓測結果報告FbU28資訊網——每日最新資訊28at.com

第一輪

Benchmark                           Mode  Cnt    Score     Error    UnitsMicaHttpBenchmark.micaHttp         thrpt    5  899.299 ± 208.080  ops/minMicaHttpBenchmark.okHttp           thrpt    5  841.669 ± 106.094  ops/minMicaHttpBenchmark.protoTypeOkHttp  thrpt    5  346.647 ±  23.664  ops/min

第二輪

Benchmark                           Mode  Cnt    Score     Error    UnitsMicaHttpBenchmark.micaHttp         thrpt    5  876.651 ± 276.569  ops/minMicaHttpBenchmark.okHttp           thrpt    5  899.365 ± 194.188  ops/minMicaHttpBenchmark.protoTypeOkHttp  thrpt    5  341.028 ±  34.713  ops/min

第三輪

Benchmark                           Mode  Cnt    Score     Error    UnitsMicaHttpBenchmark.micaHttp         thrpt    5  944.017 ± 175.509  ops/minMicaHttpBenchmark.okHttp           thrpt    5  875.143 ± 164.594  ops/minMicaHttpBenchmark.protoTypeOkHttp  thrpt    5  331.370 ±  19.136  ops/min

解讀

  • mica-http 對 okhttp 進行增強會復用OkHttpClient和連接池,并沒有明顯的性能損耗,偶爾結果還比 okhttp 表現得好。
  • protoTypeOkHttp 采用的是每次 new OkHttpClient() 性能損耗明顯非常明顯,而且高并發下還有內存泄露,所以大家在使用時一定要注意。

四、安全

mica-http 在執行時會使用 try-with-resource語法自動關流,所以在使用時不用擔心流關閉問題。FbU28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-68320-0.html我愛說實話,Mica-Http 超好用!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 實戰與原理:如何基于RocketMQ實現分布式事務?

下一篇: 12個強大的 JavaScript 動畫庫,可幫助你提升用戶體驗

標簽:
  • 熱門焦點
  • 一年經驗在二線城市面試后端的經驗分享

    忠告這篇文章只適合2年內工作經驗、甚至沒有工作經驗的朋友閱讀。如果你是2年以上工作經驗,請果斷劃走,對你沒啥幫助~主人公這篇文章內容來自 「升職加薪」星球星友 的投稿,坐
  • 自動化在DevOps中的力量:簡化軟件開發和交付

    自動化在DevOps中扮演著重要角色,它提升了DevOps的效能。通過自動化工具和方法,DevOps團隊可以實現以下目標:消除手動和重復性任務。簡化流程。在整個軟件開發生命周期中實現更
  • 使用LLM插件從命令行訪問Llama 2

    最近的一個大新聞是Meta AI推出了新的開源授權的大型語言模型Llama 2。這是一項非常重要的進展:Llama 2可免費用于研究和商業用途。(幾小時前,swyy發現它已從LLaMA 2更名為Lla
  • 一個注解實現接口冪等,這樣才優雅!

    場景碼猿慢病云管理系統中其實高并發的場景不是很多,沒有必要每個接口都去考慮并發高的場景,比如添加住院患者的這個接口,具體的業務代碼就不貼了,業務偽代碼如下:圖片上述代碼有
  • 微軟邀請 Microsoft 365 商業用戶,測試視頻編輯器 Clipchamp

    8 月 1 日消息,微軟近日宣布即將面向 Microsoft 365 商業用戶,開放 Clipchamp 應用,邀請用戶通過該應用來編輯視頻。微軟于 2021 年收購 Clipchamp,隨后開始逐步整合到 Microsof
  • 為什么你不應該使用Div作為可點擊元素

    按鈕是為任何網絡應用程序提供交互性的最常見方式。但我們經常傾向于使用其他HTML元素,如 div span 等作為 clickable 元素。但通過這樣做,我們錯過了許多內置瀏覽器的功能。
  • Temu起訴SHEIN,跨境電商戰事升級

    來源 | 伯虎財經(bohuFN)作者 | 陳平安日前據外媒報道,拼多多旗下跨境電商平臺Temu正對競爭對手SHEIN提起新訴訟,訴狀稱Shein&ldquo;利用市場支配力量強迫服裝廠商與之簽訂獨家
  • 東方甄選單飛:有些鳥注定是關不住的

    作者:彭寬鴻來源:華爾街科技眼&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;&zwj;東方甄選創始人俞敏洪帶隊的&ldquo;7天甘肅行&rdquo;直播活動已在近日順利收官。成立后一
  • 利用職權私自解除被封帳號 Meta開除20多名員工

    11月18日消息,據外媒援引知情人士表示,過去一年時間內,Facebook母公司Meta解雇或處罰了20多名員工以及合同工,指控這些人通過內部系統以不當方式重置用戶帳號,其
Top