Как реализовать Android Volley с помощью OkHttp 2.0?
Этот OkHttpStack больше не поддерживается в OkHttp2.0:
https://gist.github.com/JakeWharton/5616899
Каков текущий шаблон для интеграции OkHttp 2.0.0 с Volley?
Ответы
Ответ 1
Вы должны использовать модуль okhttp-urlconnection, который реализует API java.net.HttpURLConnection, поэтому:
-
Загрузите или установите зависимость для okhttp-urlconnection
-
Перепишите свой OkHttpStack, чтобы использовать класс OkUrlFactory:
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);
}
}
Ответ 2
Вы также можете использовать это
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);
}
}
Ответ 3
Вы также можете сделать это сейчас без зависимости от HttpURLConnection:
https://plus.google.com/+JakeWharton/posts/31jhDwaCvtg
https://gist.github.com/bryanstern/4e8f1cb5a8e14c202750