1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/blesslp-Pastry

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 3.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 04:03 e8b255f

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 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/blesslp-Pastry.git
git@api.gitlife.ru:oschina-mirror/blesslp-Pastry.git
oschina-mirror
blesslp-Pastry
blesslp-Pastry
master