9

找不到方法 com.squareup.okhttp.OkHttpClient.open,引用自方法 retrofit.client.OkClient.openConnection。

下面是我的 gradle 配置

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

3 回答 3

14

好的,Square 已经在 github 上发布了 2.0 RC2,但在 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

于 2014-06-13T20:17:33.767 回答
9

Jake Wharton 在 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()));
    }
}

我已经测试了这段代码。它工作正常。

于 2014-05-27T15:41:08.663 回答
0

添加

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

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

我的 gradle 帮助我清除了异常,但仍然无法使用 https 加载图像。

经过一些跟踪和错误方法后,我从我的 gradle 中删除了它

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

然后我尝试它对我有用。

于 2015-12-12T07:34:11.807 回答