Articles of okhttp retrofit2

在mockito中创buildOkHttpClient时如何解决java.lang.AssertionError?

我正在尝试做一些jar头networking响应。 我有实际的请求的JSON响应,我有Retrofit接口序列化响应。 试图设置这一点,我感到无比沮丧。 我应该在这里做什么? 看来我的select是,1)使用MockWebServer()2)使用RequestInterceptor()。 当试图使用1或2时,我不能为我的生活实例化一个OkHttpClient()没有它失败,基本上这使我立即死亡的每一件事。 我得到一个java.lang.AssertionError,因为OkHttpClient在找不到TLSalgorithm时抛出了这个。 if (builder.sslSocketFactory != null || !isTLS) { this.sslSocketFactory = builder.sslSocketFactory; } else { try { SSLContext sslContext = SSLContext.getInstance("TLS"); sslContext.init(null, null, null); this.sslSocketFactory = sslContext.getSocketFactory(); } catch (GeneralSecurityException e) { **throw new AssertionError(); // The system has no TLS. Just give up.** } } 我已经尝试使用unMock保持android.jar中的“javax.net.ssl”类,但是没有解决这个错误。 unMock { // […]

与retrofit2&OkHttp3得到这个错误。 无法parsing主机“<主机名>”:没有与主机名关联的地址

我正在使用retrofit 2和OkHttp3从服务器请求数据。 我刚刚添加了一个脱机caching代码,但它没有按预期工作。 我收到错误“无法parsing主机”<>“:没有与主机名关联的地址。” 当它尝试从caching中获取检索数据时(当没有Internet连接时),就会发生这种情况。 下面的代码片段。 public static Interceptor provideCacheInterceptor() { return new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { Response response = chain.proceed(chain.request()); // re-write response header to force use of cache CacheControl cacheControl = new CacheControl.Builder() .maxAge(2, TimeUnit.MINUTES) .build(); return response.newBuilder() .header(CACHE_CONTROL, cacheControl.toString()) .build(); } }; } public static Interceptor […]