okhttp和HttpURLConnection之间的关系

Qui*_*hen 1 java android http okhttp

很多人跟我说HttpURLConnection是基于android 4.4上的okhttp.

但是当我深入研究okhttp的代码时,OkHttpURLConnection是一个从HttpURLConnection扩展而来的子类.

那么,okhttp是基于HttpURLConnection还是HttpURLConnection基于okhttp?

我发现HttpURLConnection的工具来自rt.jar,它来自jdk.

我希望有人能告诉我okhttp和HttpURLConnection之间真正的关系

Com*_*are 5

我发现HttpURLConnection的工具来自rt.jar,它来自jdk.

rt.jar,Android 在编译时或运行时不使用.

okhttp是基于HttpURLConnection还是HttpURLConnection基于okhttp?

Android的具体实现abstract名称HttpURLConnection是基于OkHttp的一个分支,从Android 4.4开始.

HttpURLConnection本身并没有与OkHttp联系在一起; HttpURLConnection在Google或Square之前存在.但这HttpURLConnection是一个abstract阶级 - 它本身没用.Java运行时库需要一个具体的实现HttpURLConnection,然后它可以用来实现像openConnection()on URL这样的方法,它需要返回一些HttpURLConnection实现.

FWIW,在Android 4.3及更早版本中HttpURLConnection,AFAIK 的具体实现基于Apache Harmony实现,这是Android中大多数java.*javax.*类的实现方式.

  • 很棒的答案!OkHttp本身也是同一个Apache Harmony实现的分支! (2认同)