以下是整理一些關於java 代碼調用http 的方法
直接使用URL的openConnection進行操作
使用原生的http請求模式
使用其他包裝的http請求客戶端
這類比較多比如okhttp,HttpComponents,async-http-client
基於dsl 注解模式訪問(比較推薦的玩法)
OpenFeign,retrofit,ribbon 也很不錯
另外類sql 的數據訪問
比較推薦的是restQL-java ,很不錯,但是熱度不是很高
基於swagger 或者類似open api 模式的api 代碼生成
方法也不難,就是按照swagger 等open api 模式生成schema,然后自動生成代碼(可以跨平台)
其他框架的包裝
這類也比較多,比較常見的是spring 的resttemplate 模式,同時我們可以配置不同的httpclient
說明
以上是一個簡單的整理說明,是一些常見http api 請求的方式,如果大家發現其他比較好的方式,可以推薦下
同時一些吐槽,基本上大部分(90%,feign 支持cache)左右的http 請求對於cache都不是很好,因為很多時候我們遵循了http
協議實現了cache 的處理,但是http client 還是進行請求處理,如果我們基於了http 的cache 處理實際一些關於
api 請求相關的處理可能就會比較靈活,同時也可以實現穩定的系統(httpcache4j是一個不錯的選擇)
參考資料
https://github.com/AsyncHttpClient/async-http-client
http://hc.apache.org/
https://github.com/b2wdigital/restQL-java
https://github.com/OpenFeign/feign
https://github.com/square/retrofit
https://github.com/httpcache4j/httpcache4j
https://github.com/Netflix/ribbon