okhttp和HttpURLConnection之间的关系

时间:2017-05-13 13:50:49

标签: java android http okhttp

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

但是当我深入研究okhttp的代码时,OkHttpURLConnection是从HttpURLConnection扩展的子类。

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

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

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

1 个答案:

答案 0 :(得分:5)

  

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

没有。 Android在编译时或运行时不使用rt.jar

  

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

Android的名为abstract的{​​{1}}类的具体实现基于OkHttp的分支,从Android 4.4开始。

HttpURLConnection本身与OkHttp无关;在Google或Square之前存在HttpURLConnection。但HttpURLConnection是一个HttpURLConnection类 - 它本身没用。 Java运行时库需要abstract的具体实现,然后可以使用它来实现HttpURLConnection上的openConnection()等方法,这需要返回一些URL实现。

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