Android M HttpClient 删除会破坏兼容性?

Android M HttpClient removal breaks compatibility?

我们知道 Android M 已经移除了对 HttpClient 的支持。与它链接的应用程序必须明确说明:在您的 gradle 文件中添加库依赖项。

但是它会破坏与现有应用程序的向后兼容性吗?
假设我编写了一个支持 Api 级别 1 及更高级别的应用程序,并且自去年以来从未维护过。 app的targetSdkLevel肯定低于22,会不会在AndroidM上崩溃?源码可能丢了

答案看起来是

我通过SDK管理器查看了AndroidM源码,源码中没有客户端的包。

HttpClient 的程序包名称:

org.apache.http.client.HttpClient

现有路径:

org.apache.http.conn

org.apache.http.params

解决此问题的方法:

  1. 将此添加到您的 build.graddle:

android { useLibrary 'org.apache.http.legacy' }

  1. OkHttp-UrlConnection 添加到您的 build.graddle:

compile 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'

用法示例:

private static OkHttpClient okHttpClient = new OkHttpClient(); HttpURLConnection urlConnection = new OkUrlFactory(okHttpClient).open(url);