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?
Volley by default uses as transport layer the Apache Http stack on Froyo and HttpURLConnection stack on Gingerbread and above. Nowadays there's no many reasons to use those anymore and the good news is Volley allow us to easily set up OkHttp as its transport layer.
squareup. okhttp , artifactId, okhttp and the version 2.5. 0 (current as of this writing). As of Android 5.0, OkHttp is part of the Android platform and is used for all HTTP calls.
OkHttp is a pure HTTP/SPDY client responsible for any low-level network operations, caching, requests and responses manipulation. In contrast, Retrofit is a high-level REST abstraction build on top of OkHttp. Retrofit is strongly coupled with OkHttp and makes intensive use of it.
Volley may be relying on a library bundled with your OS, hence updating the network client isn't an option. Retrofit makes it much easier to configure HTTP intercepts (if you want to do something before or after an HTTP call).
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);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With