RestAdapter
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint("https://www.easck.com/pre>
setEndPoint就不说了,接口中定义的都是相对Url,EndPoint就是域名,build方法调用ensureSaneDefaults()方法,然后就构造了一个RestAdapter对象,构造函数的参数中传入了EndPoint外的几个对象,这几个对象就是在ensureSaneDefaults()中初始化的。
private void ensureSaneDefaults() {
if (converter == null) { converter = Platform.get().defaultConverter(); }
if (clientProvider == null) { clientProvider = Platform.get().defaultClient(); }
if (httpExecutor == null) { httpExecutor = Platform.get().defaultHttpExecutor(); }
if (callbackExecutor == null) { callbackExecutor = Platform.get().defaultCallbackExecutor(); }
if (errorHandler == null) { errorHandler = ErrorHandler.DEFAULT; }
if (log == null) { log = Platform.get().defaultLog(); }
if (requestInterceptor == null) { requestInterceptor = RequestInterceptor.NONE; }
}
ensureSaneDefaults()中初始化了很多成员,errorHandler、log就不看了,其他的除了requestInterceptor都是通过Platform对象获得的,所以要先看下Platform
Platform
private static final Platform PLATFORM = findPlatform();
static final boolean HAS_RX_JAVA = hasRxJavaOnClasspath();
static Platform get() {
return PLATFORM;
}
private static Platform findPlatform() {
try {
Class.forName("android.os.Build");
if (Build.VERSION.SDK_INT != 0) {
return new Android();
}
} catch (ClassNotFoundException ignored) {
}
if (System.getProperty("com.google.appengine.runtime.version") != null) {
return new AppEngine();
}
return new Base();
}










