如何在Android开发中使用JDK 11内置的java.net.http HTTP相关包
java.net.http.HttpClient 是JDK 11才正式纳入标准库的API,而Android原生SDK默认基于JDK 8的API规范,因此默认无法直接找到该类。
以下是完全符合你需求的可用方案,无需适配OkHttpClient或Apache HttpClient的API:
方案1:使用JDK HttpClient的反向移植包
该包将OpenJDK官方的HttpClient完整移植到JDK 8及以上运行环境,安卓下可直接引入使用,所有API签名和官方实现完全一致,你原有基于java.net.http的代码不需要做任何修改。
在模块级build.gradle中添加依赖即可:dependencies { implementation 'com.github.sormuras:jdk-httpclient:0.0.10' }引入后即可正常使用你熟悉的导入语句:
import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse;方案2:启用安卓核心库脱糖(Core Library Desugaring)
如果你的应用最低支持版本为API 33(Android 13)及以上,可以通过开启核心库脱糖的扩展支持,直接使用原生java.net.httpAPI,无需引入额外第三方依赖。
配置方式如下:- 在模块级build.gradle中开启脱糖支持:
android { compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } }- 添加脱糖依赖:
dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' }
内容的提问来源于stack exchange,提问作者Nandhan Thiravia
相关产品推荐
相关产品推荐

