下面列出了com.squareup.okhttp.Cache#retrofit.client.OkClient 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private static RestAdapter getRestAdapter() {
RequestInterceptor requestInterceptor = new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader(Constant.TAG_TOKEN, Constant.APP_TOKEN);
}
};
return new RestAdapter.Builder()
.setLogLevel(LOG_LEVEL)
.setEndpoint(RetroInterface.TARGET_URL)
.setRequestInterceptor(requestInterceptor)
.setClient(new OkClient(new OkHttpClient()))
.build();
}
private static RestAdapter getImageApiAdapter() {
RequestInterceptor requestInterceptor = new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader(Constant.TAG_TOKEN, Constant.APP_TOKEN);
}
};
return new RestAdapter.Builder()
.setLogLevel(LOG_LEVEL)
.setEndpoint(RetroInterface.TARGET_URL)
.setRequestInterceptor(requestInterceptor)
.setClient(new OkClient(new OkHttpClient()))
.build();
}
public static <T> T create(final Context context, String baseUrl, Class<T> clazz) {
final OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setCache(new Cache(context.getApplicationContext().getCacheDir(),
CACHE_SIZE));
okHttpClient.setConnectTimeout(40, TimeUnit.SECONDS);
RequestInterceptor interceptor = new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
//7-days cache
request.addHeader("Cache-Control", String.format("max-age=%d,max-stale=%d", Integer.valueOf(60 * 60 * 24 * 7), Integer.valueOf(31536000)));
request.addHeader("Connection", "keep-alive");
}
};
RestAdapter.Builder builder = new RestAdapter.Builder()
.setEndpoint(baseUrl)
.setRequestInterceptor(interceptor)
.setClient(new OkClient(okHttpClient));
return builder
.build()
.create(clazz);
}
@Before
public void setUp() throws Exception {
ShadowLog.stream = System.out;
mockWebServer = new MockWebServer();
mockWebServer.start(9999);
baseRetryHandler = BaseRetryHandler_.getInstance_(RuntimeEnvironment.application);
connectivityAwareUrlClient = ConnectivityAwareUrlClient_.getInstance_(RuntimeEnvironment.application);
connectivityAwareUrlClient.setWrappedClient(new OkClient(new OkHttpClient()));
connectivityAwareUrlClient.setRetryHandler(baseRetryHandler);
RestAdapter restAdapter = new RestAdapter.Builder()
.setClient(connectivityAwareUrlClient)
.setLogLevel(RestAdapter.LogLevel.FULL)
.setEndpoint(mockWebServer.getUrl("/").toString()).build();
sodaService = restAdapter.create(SodaService.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
RxSnappy.init(getContext());
mockWebServer = new MockWebServer();
mockWebServer.start(9812);
OkHttpClient okHttpClient = new OkHttpClient();
RestAdapter restAdapter = new RestAdapter.Builder()
.setClient(new OkClient(okHttpClient))
.setEndpoint(mockWebServer.getUrl("/").toString())
.build();
testRestAdapter = restAdapter.create(TestRestAdapter.class);
rxSnappyClient = new RxSnappyClient();
}
public DrupalOAuth2Manager(Context context, String endpoint, String clientId, String clientSecret) {
setContext(context);
setEndpoint(endpoint);
setClientId(clientId);
setClientSecret(clientSecret);
Client client = new OkClient(getOkHttpClient());
if (mRequestInterceptor == null) {
mRequestInterceptor = new SimpleRequestInterceptor();
}
mRequestInterceptor.cookie = cookie;
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(endpoint)
.setRequestInterceptor(mRequestInterceptor)
.setErrorHandler(new ErrorHandler())
.setClient(client)
.setConverter(new retrofit.converter.JacksonConverter())
.build();
mService = restAdapter.create(DrupalOAuth2.class);
}
public DrupalService getService(String endpoint) {
if (endpoint == null) return mService;
if (mService == null) {
this.endpoint = endpoint;
Client client = new OkClient(getOkHttpClient());
if (mRequestInterceptor == null) {
mRequestInterceptor = new SimpleRequestInterceptor();
}
mRequestInterceptor.cookie = cookie;
mRequestInterceptor.accessToken = accessToken;
mRequestInterceptor.xcsrfToken = xcsrfToken;
mService = new RestAdapter.Builder()
.setEndpoint(endpoint)
.setRequestInterceptor(mRequestInterceptor)
.setErrorHandler(new ErrorHandler())
.setClient(client)
.setConverter(new retrofit.converter.JacksonConverter())
.setLogLevel(RestAdapter.LogLevel.FULL) // Do this for development too.
.build().create(DrupalService.class);
}
return mService;
}
private TestService buildTestService(String url){
if(testService==null){
RestAdapter restAdapter = new RestAdapter.Builder()
.setClient( new OkClient() )
.setEndpoint(url)
.setLogLevel(RestAdapter.LogLevel.FULL)
.setLog(new RestAdapter.Log() {
@Override
public void log(String s) {
System.out.println(s);
}
}).build();
testService = restAdapter.create(TestService.class);
}
return testService;
}
@Provides @Singleton public RedditService provideRedditService(Gson gson, Resources resources,
UserStorage userStorage,
TokenStorage tokenStorage,
RedditAuthenticationService authService) {
final GsonConverter gsonConverter = new GsonConverter(gson);
final OkHttpClient okHttpClient = new OkHttpClient();
RedditService authenticatedRedditService = new RestAdapter.Builder().setEndpoint(Constants.ENDPOINT_URL_OAUTH_REDDIT)
.setClient(new OkClient(okHttpClient))
.setConverter(new DelegatingConverter(gsonConverter,
new TokenConverter(gsonConverter),
new PostConverter(gsonConverter, resources, userStorage, new HtmlDecoder()),
new MarkAsReadConverter(),
new SubscriptionConverter(),
new CommentsConverter(gson, gsonConverter, resources, userStorage)))
.build()
.create(RedditService.class);
okHttpClient.networkInterceptors()
.add(new TokenRefreshInterceptor(tokenStorage, authService));
okHttpClient.setRetryOnConnectionFailure(true);
return authenticatedRedditService;
}
public <T> T createClient(
Class<T> type,
Converter converter,
RemoteService remoteService,
OkHttpClient okHttpClient,
String username,
String password,
String usernamePasswordFile)
throws IOException {
String baseUrl = remoteService.getBaseUrl();
baseUrl = baseUrl.endsWith("/") ? baseUrl.substring(0, baseUrl.length() - 1) : baseUrl;
Endpoint endpoint = newFixedEndpoint(baseUrl);
if (!(StringUtils.isEmpty(username)
&& StringUtils.isEmpty(password)
&& StringUtils.isEmpty(usernamePasswordFile))) {
okHttpClient = createAuthenticatedClient(username, password, usernamePasswordFile);
}
Slf4jRetrofitLogger logger = createRetrofitLogger.apply(type);
return new RestAdapter.Builder()
.setEndpoint(endpoint)
.setClient(new OkClient(okHttpClient))
.setConverter(converter)
.setLogLevel(RestAdapter.LogLevel.valueOf(retrofitLogLevel))
.setLog(logger)
.build()
.create(type);
}
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
OkClient okClient() {
OkHttpClient client = okHttpClientConfig.create();
client.setConnectionPool(new ConnectionPool(maxIdleConnections, keepAliveDurationMs));
client.setRetryOnConnectionFailure(retryOnConnectionFailure);
return new OkClient(client);
}
private static DaemonService createService(boolean log) {
return new RestAdapter.Builder()
.setEndpoint(GlobalOptions.getGlobalOptions().getDaemonEndpoint())
.setClient(new OkClient())
.setConverter(new JacksonConverter(getObjectMapper()))
.setLogLevel(log ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE)
.build()
.create(DaemonService.class);
}
public static DoubanMovieApiService getMovieApiService() {
if (mApiService == null) {
OkHttpClient mOkHttpClient = new OkHttpClient();
mOkHttpClient.setConnectTimeout(15, TimeUnit.SECONDS);
RestAdapter restAdapter = new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL)
.setEndpoint(DOUBAN_API_V2_BASE_URI)
.setClient(new OkClient(mOkHttpClient))
.build();
mApiService = restAdapter.create(DoubanMovieApiService.class);
}
return mApiService;
}
public <T> T initRestAdapter(String ENDPOINT, Class<T> restInterface, BaseRetryHandler baseRetryHandler) {
okHttpClient = new OkHttpClient();
okHttpClient.setCookieHandler(CookieHandler.getDefault());
okHttpClient.setConnectTimeout(10, TimeUnit.MINUTES);
connectivityAwareUrlClient.setWrappedClient(new OkClient(okHttpClient));
connectivityAwareUrlClient.setRetryHandler(baseRetryHandler);
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(ENDPOINT)
.setClient(connectivityAwareUrlClient)
// .setLogLevel(RestAdapter.LogLevel.FULL)
.build();
return restAdapter.create(restInterface);
}
MainRetrofit() {
OkHttpClient client = new OkHttpClient();
client.setReadTimeout(21, TimeUnit.SECONDS);
RestAdapter restAdapter = new RestAdapter.Builder()
.setClient(new OkClient(client))
.setEndpoint(MainFactory.HOST)
.setConverter(new GsonConverter(gson))
.setLogLevel(RestAdapter.LogLevel.FULL)
.build();
mService = restAdapter.create(GuDong.class);
}
LineRetrofit() {
OkHttpClient client = new OkHttpClient();
client.setReadTimeout(12, TimeUnit.SECONDS);
int cacheSize = 10 * 1024 * 1024; // 10 MiB
cache = new Cache(FileUtils.getHttpCacheDir(), cacheSize);
client.setCache(cache);
client.networkInterceptors().add(new CacheInterceptor());
RestAdapter restAdapter = new RestAdapter.Builder().setClient(new OkClient(client))
.setEndpoint("http://gank.avosapps.com/api/")
.setConverter(new GsonConverter(gson))
.build();
service = restAdapter.create(Line.class);
}
/**
* 用于Stethoscope调试的ttpClient
*/
public static OkClient getOkClient() {
OkHttpClient client = new OkHttpClient();
client.setConnectTimeout(CONNECT_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
client.setReadTimeout(READ_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
client.networkInterceptors().add(new StethoInterceptor());
return new OkClient(client);
}
@Provides
@Singleton
RestAdapter provideRestAdapter(Gson gson, OkHttpClient okHttpClient, ErrorHandler errorHandler) {
return new RestAdapter.Builder()
.setErrorHandler(errorHandler)
.setClient(new OkClient(okHttpClient))
.setConverter(new GsonConverter(gson))
.setLogLevel(RestAdapter.LogLevel.BASIC)
// .setEndpoint("http://mock-api.com/TyTabSFqXNyqMpNw.mock")
.setEndpoint("https://api.github.com")
.build();
}
@Provides
@Singleton
FirService provideFirService(Gson gson, OkHttpClient okHttpClient, ErrorHandler errorHandler) {
RestAdapter restAdapter = new RestAdapter.Builder()
.setErrorHandler(errorHandler)
.setClient(new OkClient(okHttpClient))
.setConverter(new GsonConverter(gson))
.setLogLevel(RestAdapter.LogLevel.BASIC)
.setEndpoint("http://api.fir.im")
.build();
return restAdapter.create(FirService.class);
}
@Provides
@Singleton
ReposTrendingApiService provideTrendingApiService(Gson gson, OkHttpClient okHttpClient, ErrorHandler errorHandler) {
RestAdapter restAdapter = new RestAdapter.Builder()
.setErrorHandler(errorHandler)
.setClient(new OkClient(okHttpClient))
.setConverter(new GsonConverter(gson))
.setLogLevel(RestAdapter.LogLevel.BASIC)
.setEndpoint("http://trending.codehub-app.com")
.build();
return restAdapter.create(ReposTrendingApiService.class);
}
@Provides
@Singleton
OAuthGitHubWebFlow provideOAuthGitHubWebFlow(Gson gson, OkHttpClient okHttpClient, ErrorHandler errorHandler) {
RestAdapter restAdapter = new RestAdapter.Builder()
.setErrorHandler(errorHandler)
.setClient(new OkClient(okHttpClient))
.setConverter(new GsonConverter(gson))
.setLogLevel(RestAdapter.LogLevel.BASIC)
.setEndpoint("https://github.com")
.build();
return restAdapter.create(OAuthGitHubWebFlow.class);
}
public <T> T initRestAdapter(Context context, String endPoint, Class<T> restInterface) {
okHttpClient = new OkHttpClient();
okHttpClient.setCookieHandler(CookieHandler.getDefault());
okHttpClient.setConnectTimeout(10, TimeUnit.MINUTES);
connectivityAwareUrlClient = new ConnectivityAwareUrlClient(context, new OkClient(okHttpClient));
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(endPoint)
.setClient(connectivityAwareUrlClient)
// .setLogLevel(RestAdapter.LogLevel.FULL)
.build();
return restAdapter.create(restInterface);
}
private static RestAdapter createAdapter(){
boolean isInDebugServer = JUtils.getSharedPreference().getBoolean("DebugServer",false);
return new RestAdapter.Builder()
.setEndpoint(isInDebugServer?Service.BASE_URL_DEBUG:Service.BASE_URL)
.setRequestInterceptor(new HeaderInterceptors())
.setLogLevel(BuildConfig.DEBUG ? RestAdapter.LogLevel.FULL : RestAdapter.LogLevel.NONE)
.setConverter(new WrapperConverter())
.setClient(new OkClient(getOkHttpClient()))
.setRequestInterceptor(new HeaderInterceptors())
.build();
}
private RestAdapter getRestAdapter() {
if (mRestAdapter == null) {
mRestAdapter = new RestAdapter.Builder()
.setEndpoint("http://api.openweathermap.org")
.setClient(new OkClient(getOkHttpClient()))
.setLogLevel(RestAdapter.LogLevel.NONE)
.build();
}
return mRestAdapter;
}
public RestClient() {
RestAdapter restAdapter = new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.BASIC)
.setEndpoint(BASE_URL)
.setRequestInterceptor(new SessionRequestInterceptor())
.setClient(new OkClient())
.build();
api = restAdapter.create(ApiService.class);
}
@Provides
@Singleton
RestAdapter provideRestAdapter(Gson gson, OkHttpClient okHttpClient, ErrorHandler errorHandler){
return new RestAdapter.Builder()
.setErrorHandler(errorHandler)
.setClient(new OkClient(okHttpClient))
.setConverter(new GsonConverter(gson))
.setLogLevel(RestAdapter.LogLevel.BASIC)
.setEndpoint("http://radio.sky31.com/api")
.build();
}
@Provides
@Singleton
FirService provideFirService(Gson gson, OkHttpClient okHttpClient, ErrorHandler errorHandler){
RestAdapter restAdapter = new RestAdapter.Builder()
.setErrorHandler(errorHandler)
.setClient(new OkClient(okHttpClient))
.setConverter(new GsonConverter(gson))
.setLogLevel(RestAdapter.LogLevel.BASIC)
.setEndpoint("http://fir.im/api/v2")
.build();
return restAdapter.create(FirService.class);
}
private RestAdapter.Builder buildCommonRestAdapterBuilder(Gson gson, OkHttpClient client) {
return new RestAdapter.Builder()
.setClient(new OkClient(client))
.setConverter(new GsonConverter(gson))
.setEndpoint(getApiUri().toString())
.setLogLevel(httpLogLevel);
}
@Override
public Client get() {
final OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.setReadTimeout(configuration.getReadTimeout(), TimeUnit.MILLISECONDS);
okHttpClient.setConnectTimeout(configuration.getConnectionTimeout(), TimeUnit.MILLISECONDS);
return new OkClient(okHttpClient);
}
/**
* Hook method dispatched by the GenericActivity framework to
* initialize the AcronymOps object after it's been created.
*
* @param view The currently active AcronymOps.View.
* @param firstTimeIn Set to "true" if this is the first time the
* Ops class is initialized, else set to
* "false" if called after a runtime
* configuration change.
*/
public void onConfiguration(AcronymOps.View view,
boolean firstTimeIn) {
Log.d(TAG,
"onConfiguration() called");
// Reset the mAcronymView WeakReference.
mAcronymView =
new WeakReference<>(view);
if (firstTimeIn) {
// Store the Application context to avoid problems with
// the Activity context disappearing during a rotation.
mContext = view.getApplicationContext();
// Set up the HttpResponse cache that will be used by
// Retrofit.
mCache = new Cache(new File(mContext.getCacheDir(),
CACHE_FILENAME),
// Cache stores up to 1 MB.
1024 * 1024);
// Set up the client that will use this cache. Retrofit
// will use okhttp client to make network calls.
mOkHttpClient = new OkHttpClient();
if (mCache != null)
mOkHttpClient.setCache(mCache);
// Create a proxy to access the Acronym Service web
// service.
mAcronymWebServiceProxy =
new RestAdapter.Builder()
.setEndpoint(AcronymWebServiceProxy.ENDPOINT)
.setClient(new OkClient(mOkHttpClient))
// .setLogLevel(LogLevel.FULL)
.setLogLevel(LogLevel.NONE)
.build()
.create(AcronymWebServiceProxy.class);
}
}