How to implement Android Volley with OkHttp 2.0?

后端 未结 3 1214
北海茫月
北海茫月 2020-12-12 22:58

This OkHttpStack is no longer supported in OkHttp2.0: https://gist.github.com/JakeWharton/5616899

What is the current pattern to integrate OkHttp 2.0.0 with Volley?<

相关标签:
3条回答
  • 2020-12-12 23:30

    You can use this also

    import com.android.volley.toolbox.HurlStack;
    import com.squareup.okhttp.OkHttpClient;
    import com.squareup.okhttp.OkUrlFactory;
    
    /**
     * An {@link com.android.volley.toolbox.HttpStack HttpStack} implementation
     * which uses OkHttp as its transport.
     */
    public class OkHttpStack extends HurlStack {
        private final OkUrlFactory mFactory;
    
        public OkHttpStack() {
            this(new OkHttpClient());
        }
    
        public OkHttpStack(OkHttpClient client) {
            if (client == null) {
                throw new NullPointerException("Client must not be null.");
            }
            mFactory = new OkUrlFactory(client);
        }
    }
    
    0 讨论(0)
  • 2020-12-12 23:35

    You can also do this now without the dependency on HttpURLConnection:

    https://plus.google.com/+JakeWharton/posts/31jhDwaCvtg

    https://gist.github.com/bryanstern/4e8f1cb5a8e14c202750

    0 讨论(0)
  • 2020-12-12 23:48

    You must use okhttp-urlconnection module that implements the java.net.HttpURLConnection API, so:

    • Download or set a dependency for okhttp-urlconnection

    • Rewrite your OkHttpStack to make use of the OkUrlFactory class:

      public class OkHttpStack extends HurlStack {
         private final OkUrlFactory okUrlFactory;
         public OkHttpStack() {
             this(new OkUrlFactory(new OkHttpClient())); 
         }
         public OkHttpStack(OkUrlFactory okUrlFactory) {
             if (okUrlFactory == null) {
                 throw new NullPointerException("Client must not be null.");
             }
             this.okUrlFactory = okUrlFactory;
         }
         @Override
         protected HttpURLConnection createConnection(URL url) throws IOException {
             return okUrlFactory.open(url);
         }
      }

    0 讨论(0)
提交回复
热议问题