ObservableHandler
Если вы хотите объединить RxJava, вы можете сделать это следующим образом:
PastryConfig.init(this)
.setHost("http://api.com/")
.addInterceptor(new LoggerInterceptor(LoggerInterceptor.LOG_TYPE.LOG_FULL))
.addReturnValHandler(new ObservableHandler())
.applyConfig();
public interface Api {
@POST("App/User/User/get_u_member")
public Observable<ResultBean<MemberInfo>> getMemberInfo(@Param("member_id") String memberId);
}
findViewById(R.id.btnGetMemberInfo).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
api.getMemberInfo("609").subscribe(new Consumer<ResultBean<MemberInfo>>() {
@Override
public void accept(@NonNull ResultBean<MemberInfo> infoResultBean) throws Exception {
String nickname = infoResultBean.getData().getNickname();
}
}, new Consumer<Throwable>() {
@Override
public void accept(@NonNull Throwable throwable) throws Exception {
}
});
}
});
PastryDelegate и @InjectApi
Вы можете интегрировать Pastry в любой базовый класс вашего проекта следующим образом:
Пример:
public class BaseActivity {
private PastryDelegate mPastryDelegate;
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
mPastryDelegate = PastryDelegate.create(this);
mPastryDelegate.autoInject();
}
//В каком-то случае отменить сетевой запрос
public void onStop() {
mPastryDelegate.cancelAll();
}
}
Пример 2:
public class LoginActivity extends BaseActivity {
@InjectApi
private LoginModel mLoginModel;
protected void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
setContentView(R.layout.login_activity);
findViewById(R.id.btnSubmit).setOnClickListener(view->mLoginModel.login(userName,password));
}
//Операция после успешного входа в систему
public void login(...) {
...
}
}
BaseInterceptor
Более простой способ добавления перехватчика:
public class XxxInterceptor extends BaseInterceptor {
@Override
public Request onBefore(Request request) {
/**
* Унифицированное добавление заголовка
*/
return request.newBuilder()
.addHeader("headerKey", "headerValue")
.addHeader("headerKey2","headerValue2")
.build();
}
or...
@Override
public Request onBefore(Request request) {
if (!NetworkUtils.hasConnection(TheApplication.getInstance())) {
//Нет сети для подсказки
...
}
return super.onBefore(request);
}
}
GlobalParamProvider
Если вам нужно ввести параметры для некоторых классов запросов, это будет полезно:
private GlobalParamProvider nullProvider = new GlobalParamProvider() {
@Override
public Map<String, String> provider() {
HashMap<String, String> params = new HashMap<>();
params.put("member_id", "123456");
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )