Android 多模块重新适配器';s集管注入
如何从模块外部注入RestAdapter头 背景 我正在编写共享相同API的Android应用程序。到目前为止,我已经编写了API,因此我有了用于提供RestAdapter的APIAdapterModuleAndroid 多模块重新适配器';s集管注入,android,dependency-injection,retrofit,dagger,Android,Dependency Injection,Retrofit,Dagger,如何从模块外部注入RestAdapter头 背景 我正在编写共享相同API的Android应用程序。到目前为止,我已经编写了API,因此我有了用于提供RestAdapter的APIAdapterModule @Module(library = true) public class APIAdapterModule { @Provides @Singleton @Named("APIAdapter") public RestAdapter CreateAPIAdapter() {
@Module(library = true)
public class APIAdapterModule {
@Provides @Singleton @Named("APIAdapter")
public RestAdapter CreateAPIAdapter() {
RequestInterceptor requestInterceptor = getRequestInterceptor();
return new RestAdapter.Builder()
.setEndpoint("http://api.domain.com")
.setLogLevel(RestAdapter.LogLevel.FULL)
.setRequestInterceptor(requestInterceptor)
.build();
}
private RequestInterceptor getRequestInterceptor() {
return new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("client", "API module");
}
};
}
}
我通过服务模块使用改装网关连接到API
public interface ProfileGateway {
@FormUrlEncoded
@POST("/profile/detail/")
public void detail(@Field("id") int itemId, @Field("type") int type, Callback<ResponseDO> callback);
}
Android应用程序B:
header("client":"App B")
header("userId":"B621")
那么,如果API不要求依赖于两个应用程序,如何从AppA和AppB发送标头呢?这可能吗
header("client":"App A")
header("userId":"A00011")
header("client":"App B")
header("userId":"B621")