Android 为什么截击库通常与okHttp库相结合?

Android 为什么截击库通常与okHttp库相结合?,android,android-volley,okhttp,Android,Android Volley,Okhttp,为什么截击通常与okHttp相结合?为什么要这样做 例如: 阅读为什么okhttp适合传输-然后您就会知道为什么它经常与volley结合使用,volley在创建时需要一个HttpStack 如果您没有提供,Volley将根据您的API级别创建一个堆栈:如果您运行的是API 9或更低版本,它将基于AndroidHttpClient。如果您运行的是API 10或更高版本,它将基于HttpURLConnection 是一个现代、快速、高效的Http客户机,它支持Http/2和SPDY,并为您做了很多事

为什么截击通常与okHttp相结合?为什么要这样做

例如:


阅读为什么okhttp适合传输-然后您就会知道为什么它经常与volley结合使用,volley在创建时需要一个HttpStack

如果您没有提供,Volley将根据您的API级别创建一个堆栈:如果您运行的是API 9或更低版本,它将基于AndroidHttpClient。如果您运行的是API 10或更高版本,它将基于HttpURLConnection

是一个现代、快速、高效的Http客户机,它支持Http/2和SPDY,并为您做了很多事情,如连接池、gzip、缓存等等。OkHttp的作用类似于传输层

OkHttp使用一个补充java.io和java.nio的库,使访问、存储和处理数据变得更加容易

出于这些原因,我建议您使用和HTTP堆栈。我使用的是不使用okhttp urlconnection的


我为Android网络写了一篇文章,你可能会觉得很有趣。

这是因为volley无法处理HTTP请求?这里的关键是分离关注点。这并不能真正解释为什么我们需要volley,即使在OkHttp从Android 4.4内部使用之后,我们还需要HttpStack吗?@rcde0 KitKat几年前发布,并且可能有一个非常旧的OkHttp版本,这不是对你问题的回答,只是需要记住的东西。@Sotti,我读了你的文章,但是android studio找不到类-“OkHttpStack”即使在我的回答中添加了-compile'com.google.code.gson:gson:2.7'compile'com.squareup.okhttp3:okhttp:3.5.0'compile'com.android.volley:volley:1.0.0'@CRSardar(就在上面,您需要提供一个到OkHttpStack的链接)。
   OkHttpClient client = new OkHttpClient();
   client.networkInterceptors().add(new StethoInterceptor());
   mRequestQueue = Volley.newRequestQueue(context, new OkHttpStack(client));