OkHttpClient()類中有open方法。
在OKHttp1.6.0的時候該方法就已經(jīng)已經(jīng)過時了。
Apache HttpClient早就不推薦httpclient,5.0之后干脆廢棄,后續(xù)會刪除。Android API Level 23? (Android 6.0)刪除了HttpClient。Java開發(fā)用HttpClient,官方推薦android開發(fā)用HttpUrlConnection。
HttpURLConnection是一種多用途、輕量極的HTTP客戶端,使用它來進行HTTP操作可以適用于大多數(shù)的應(yīng)用程序。雖然HttpURLConnection的API提供的比較簡單,但是同時這也使得我們可以更加容易地去使用和擴展它。
不過在Android API Level 9(Android 2.2)版本之前,HttpURLConnection一直存在著一些令人厭煩的bug。比如說對一個可讀的InputStream調(diào)用close()方法時,就有可能會導(dǎo)致連接池失效了。那么我們通常的解決辦法就是直接禁用掉連接池的功能:
在android 2.2及以下版本中HttpUrlConnection存在著一些bug,連接池失效,所以建議在android 2.3以后使用HttpUrlConnection,2.3之前使用HttpClient。
HttpUrlConnection在IO方面用到的是InputStream和OutputStream,但是OkHttp用的是sink和source,這兩個是在Okio這個開源庫里的,sink相當(dāng)于outputStream,source相當(dāng)于是inputStream。sink和source比InputStream和OutputStream更加強大,單拿sink舉例,他的子類有BufferedSink(支持緩沖)、GzipSink(支持Gzip壓縮)、ForwardingSink和InflaterSink(后面這兩者服務(wù)于GzipSink),source對應(yīng)的也有,具體的可以自行上網(wǎng)查找。
從Android 4.4起, 其HttpURLConnection的內(nèi)部實現(xiàn)已經(jīng)變?yōu)镺kHttp,使用的是okhttp1.5及以下版本,具體不知
HttpURLConnection源碼分析如下:
http://blog.csdn.net/zhangcanyan/article/details/51682482