HETP GET запрос не произошел после OnError в модернизации - PullRequest
0 голосов
/ 03 декабря 2018

Я новичок в Retrofit и использую com.squareup.retrofit:retrofit:1.9.0.У меня есть заполнение формы в приложении для Android, которое может ввести адрес, и при нажатии на кнопку сохранения, он сделает запрос HTTP GET с помощью оператора плоской карты при модернизации и даст error ответов, если пользователь введет неправильный пин-код, говорящий, что " неверный пин-код"После того, как я получу ответ об ошибке, будет выполнен обратный вызов OnError(), и я разрешаю пользователю снова редактировать пин-код и снова нажимаю кнопку сохранения, мой retrofit API не выполняетсязапрос http.Как решить эту проблему?

 ApiClient.createAddress(contact).subscribe(mObserver );

    mObserver = new Subscriber<Contact>() {
    @Override public void onCompleted() {}  

    @Override public void onError(Throwable e) {                        
    onNetworkError(e);
    }

    @Override public void onNext(Contact contact) {             
    saveContact(contact);
    }
    };  

    public static Observable<Contact> createAddress(Contact mAddress) 
    {
    final String name = mAddress.getName();
    final String company = mAddress.getCompany();     
    final String country = mAddress.getCountry(); 

    final Observable<Contact> createAddressObservable = 
    sService.createAddress(name,company,country)
    .flatMap(new Func1<AddressResponse, Observable<? extends Contact>>() {
    @Override
    public Observable<? extends Contact> call(
    AddressResponse addressCreateResponse) {

    if (addressCreateResponse.isSuccess()) { 
    return Observable.just(addressCreateResponse.getAddress());
    } 
    else {
    final String errorMessage = addressCreateResponse.getMessage();
    return null; 
    }
    });     
    return createAddressObservable.subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread());
    }  

В приведенном выше коде, когда я ввожу неправильный пин-код, он переходит к обратному вызову onError, затем я разрешаю пользователю редактировать пин-код и нажимать кнопку сохранения, он вызоветApiClient.createAddress(contact, null).subscribe(mObserver), который не делает http запрос на получение снова.Пожалуйста, помогите в этом.

...