public void run() throws Exception { for (int i = 0; i < 5; i++) { System.out.println(" Request: " + i); Request request = new Request.Builder() .url("https://api.github.com/search/repositories?q=http") .build(); OkHttpClient clientForCall; if (i == 2) { // Force this request's response to be written to the cache. This way, subsequent responses // can be read from the cache. System.out.println("Force cache: true"); clientForCall = client.newBuilder() .addNetworkInterceptor(REWRITE_CACHE_CONTROL_INTERCEPTOR) .build(); } else { System.out.println("Force cache: false"); clientForCall = client; } try (Response response = clientForCall.newCall(request).execute()) { if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); System.out.println(" Network: " + (response.networkResponse() != null)); System.out.println(); } } }
.addNetworkInterceptor(chain -> { Response originalResponse = chain.proceed(chain.request()); return originalResponse.newBuilder()
private GithubApiService() { OkHttpClient.Builder httpclientBuilder = new OkHttpClient.Builder(); httpclientBuilder.connectTimeout(5, TimeUnit.SECONDS); httpclientBuilder.addNetworkInterceptor(new StethoInterceptor()); retrofit = new Retrofit.Builder().client(httpclientBuilder.build()).addConverterFactory(GsonConverterFactory.create()). addCallAdapterFactory(RxJavaCallAdapterFactory.create()).baseUrl(BASE_URL).build(); githubApiServiceInterface = retrofit.create(GithubApiServiceInterface.class); }
public static OkHttpClient getOkHttpClient() { if (okHttpClient == null) { okHttpClient = new OkHttpClient.Builder() .addNetworkInterceptor(chain -> { Request request = chain.request(); Response response = chain.proceed(request); return response.newBuilder() .body(new ProgressResponseBody(request.url().toString(), LISTENER, response.body())) .build(); }) .build(); } return okHttpClient; }
.addNetworkInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { } else { okHttpClient = sHttpClient.newBuilder() .addNetworkInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException {
.addNetworkInterceptor(nightTrain) .build(); Request request=
.addNetworkInterceptor(nightTrain) .build(); Request request=
.addNetworkInterceptor(new CacheOverrideNetworkInterceptor()) .addInterceptor(new ConnectionAwareInterceptor(context)) .addInterceptor(new LoggingInterceptor())
.connectTimeout(CONNECT_TIME_OUT, TimeUnit.MILLISECONDS) .addInterceptor(mRewriteCacheControlInterceptor) .addNetworkInterceptor(mRewriteCacheControlInterceptor) .addInterceptor(headerInterceptor) .addInterceptor(logInterceptor)
.newBuilder() .cache(InternalNetworking.sHttpClient.cache()) .addNetworkInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { } else { okHttpClient = InternalNetworking.sHttpClient.newBuilder() .addNetworkInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException {
.newBuilder() .cache(InternalNetworking.sHttpClient.cache()) .addNetworkInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException { } else { okHttpClient = InternalNetworking.sHttpClient.newBuilder() .addNetworkInterceptor(new Interceptor() { @Override public Response intercept(Chain chain) throws IOException {
.addNetworkInterceptor(chain -> { Response response = chain.proceed(chain.request()); if (response.isSuccessful()) {
/** * 初始化网络通信服务 */ public static void init() { // 指定缓存路径,缓存大小100Mb Cache cache = new Cache(new File(AndroidApplication.getContext().getCacheDir(), "HttpCache"), 1024 * 1024 * 100); OkHttpClient okHttpClient = new OkHttpClient.Builder().cache(cache) .retryOnConnectionFailure(true) .addInterceptor(sLoggingInterceptor) .addInterceptor(sRewriteCacheControlInterceptor) .addNetworkInterceptor(sRewriteCacheControlInterceptor) .connectTimeout(10, TimeUnit.SECONDS) .build(); Retrofit retrofit = new Retrofit.Builder() .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .baseUrl(NEWS_HOST) .build(); sNewsService = retrofit.create(INewsApi.class); retrofit = new Retrofit.Builder() .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .baseUrl(WELFARE_HOST) .build(); sWelfareService = retrofit.create(IWelfareApi.class); }
.connectTimeout(TIME_OUT, TimeUnit.SECONDS) .readTimeout(TIME_OUT, TimeUnit.SECONDS) .addNetworkInterceptor(intercept);
builder.readTimeout(readTimeoutMs, TimeUnit.MILLISECONDS); builder.addNetworkInterceptor(this::addHeaders); if (proxyLogin != null) { builder.proxyAuthenticator((route, response) -> {
private Api() { HttpLoggingInterceptor logInterceptor = new HttpLoggingInterceptor(); logInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); File cacheFile = new File(App.getAppContext().getCacheDir(), "cache"); Cache cache = new Cache(cacheFile, 1024 * 1024 * 100); //100Mb OkHttpClient okHttpClient = new OkHttpClient.Builder() .readTimeout(7676, TimeUnit.MILLISECONDS) .connectTimeout(7676, TimeUnit.MILLISECONDS) .addInterceptor(headInterceptor) .addInterceptor(logInterceptor) .addNetworkInterceptor(new HttpCacheInterceptor()) .cache(cache) .build(); Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").serializeNulls().create(); retrofit = new Retrofit.Builder() .client(okHttpClient) .addConverterFactory(GsonConverterFactory.create(gson)) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .baseUrl(C.BASE_URL) .build(); service = retrofit.create(ApiService.class); }
/** * 初始化OKHttpClient,设置缓存,设置超时时间,设置打印日志,设置UA拦截器 */ private static void initOkHttpClient() { HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); if (mOkHttpClient == null) { synchronized (RetrofitHelper.class) { if (mOkHttpClient == null) { //设置Http缓存 Cache cache = new Cache(new File(BilibiliApp.getInstance().getCacheDir(), "HttpCache"), 1024 * 1024 * 10); mOkHttpClient = new OkHttpClient.Builder() .cache(cache) .addInterceptor(interceptor) .addNetworkInterceptor(new CacheInterceptor()) .addNetworkInterceptor(new StethoInterceptor()) .retryOnConnectionFailure(true) .connectTimeout(30, TimeUnit.SECONDS) .writeTimeout(20, TimeUnit.SECONDS) .readTimeout(20, TimeUnit.SECONDS) .addInterceptor(new UserAgentInterceptor()) .build(); } } } }
/** * 将 {@link okhttp3.OkHttpClient.Builder} 传入,配置一些本管理器需要的参数 * * @param builder * @return */ public OkHttpClient.Builder with(OkHttpClient.Builder builder) { checkNotNull(builder, "builder cannot be null"); return builder .addNetworkInterceptor(mInterceptor); }
public static void init(Glide glide, OkHttpClient okHttpClient) { OkHttpClient.Builder builder; if (okHttpClient != null) { builder = okHttpClient.newBuilder(); } else { builder = new OkHttpClient.Builder(); } builder.addNetworkInterceptor(createInterceptor(new DispatchingProgressListener())); glide.getRegistry().replace(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(builder.build())); }
@Before public void setUp() { PowerMockito.mockStatic(NetworkEventReporterImpl.class); mMockEventReporter = mock(NetworkEventReporter.class); Mockito.when(mMockEventReporter.isEnabled()).thenReturn(true); PowerMockito.when(NetworkEventReporterImpl.get()).thenReturn(mMockEventReporter); mInterceptor = new StethoInterceptor(); mClientWithInterceptor = new OkHttpClient.Builder() .addNetworkInterceptor(mInterceptor) .build(); }