NoSuchMethodError, если я использую okhttp 2.0 и последнюю модификацию?

не удалось найти метод com.squareup.okhttp.Охттпклиент.открыть, ссылка из модифицированной методике.клиент.Окклиент.содержащие вредоносные элементы.

ниже моя конфигурация gradle

compile 'com.squareup.okhttp:okhttp:+'
compile 'com.squareup.okhttp:okhttp-urlconnection:+'
compile 'com.squareup.retrofit:retrofit:+'

3 ответов


хорошо, square выпустила 2.0 RC2 на github, но не на maven:

https://github.com/square/okhttp

но вам все еще нужен okhttp-urlconnection (RC1 прямо сейчас), который находится только на maven:

http://mvnrepository.com/artifact/com.squareup.okhttp

и не забывайте, что okhttp 2.0 теперь зависит от okio:

https://github.com/square/okio


ответ Джейка Уортона в google+ мы можем сделать так. Я выбрасываю OkClient в ретрофите.

public class RetrofitHttpClient extends UrlConnectionClient {

    private static final int CONNECT_TIMEOUT_MILLIS = 60 * 1000; // 30s
    private static final int READ_TIMEOUT_MILLIS = 85 * 1000; // 45s

    private static OkUrlFactory generateDefaultOkUrlFactory() {
        OkHttpClient client = new com.squareup.okhttp.OkHttpClient();
        client.setConnectTimeout(CONNECT_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
        client.setReadTimeout(READ_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
        return new OkUrlFactory(client);
    }

    private final OkUrlFactory factory;

    public RetrofitHttpClient() {
        factory = generateDefaultOkUrlFactory();
    }

    @Override protected HttpURLConnection openConnection(Request request) throws IOException {
        return factory.open(new URL(request.getUrl()));
    }
}

я протестировал этот код. это отличная работа.


добавлять

compile 'com.squareup.okhttp:okhttp-urlconnection:1.6.0'

compile 'com.squareup.retrofit:retrofit:+'

чтобы мой gradle помог мне очистить исключение, но все равно не смог загрузить изображение с https.

после некоторого метода следа и ошибки я удалил это из моего gradle

compile 'com.squareup.okhttp:okhttp:+'

затем я попробовал это сработало для меня.