无法找到方法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:+'
答案 0 :(得分: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:
答案 1 :(得分:9)
杰克沃顿在谷歌+的答案我们可以这样做。我在改造时扔掉了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()));
}
}
我已经测试了这段代码。它的工作正常。
答案 2 :(得分:0)
添加
compile 'com.squareup.okhttp:okhttp-urlconnection:1.6.0'
compile 'com.squareup.retrofit:retrofit:+'
到我的gradle帮助我清除异常,但仍然无法使用https加载图像。
经过一些跟踪和错误的方法后,我从我的gradle中删除了
compile 'com.squareup.okhttp:okhttp:+'
然后我试过它对我有用。