0

我尝试刷新(或更新)我的响应(在获取中)并提取正文字段获取状态。当我尝试这样做时,我得到了无休止的“等待”,但我的服务器已经返回“ok”。我尝试使用一个while循环来插入我的onResponce,但我认为它不正确。

    private void startToPost(String phone) {
    ServerApiInterface myServerPlaceHolder = RetroRestClient.getRetrofitInstance().create(ServerApiInterface.class);
    PhoneNumberModel myPhoneNumber = new PhoneNumberModel(phone);
    Call<PhoneNumberModel> getResultByNumberCall = myServerPlaceHolder.createPost(myPhoneNumber);

    getResultByNumberCall.enqueue(new Callback<PhoneNumberModel>() {
        @Override
        public void onResponse(Call<PhoneNumberModel> call, Response<PhoneNumberModel> response) {
            if(response.isSuccessful()) {
                String phone = response.body().getPhone();
                startToGetResponce(phone);
            }
        }
        @Override
        public void onFailure(Call<PhoneNumberModel> call, Throwable t) {
            t.printStackTrace();
        }
    });
}

private void startToGetResponce(String phone) {
    ServerApiInterface myServerPlaceHolder = RetroRestClient.getRetrofitInstance().create(ServerApiInterface.class);
    Call<PhoneNumberModel> getGetResultCall = myServerPlaceHolder.getAllInfo(phone);
    getGetResultCall.enqueue(new Callback<PhoneNumberModel>() {
        @Override
        public void onResponse(Call<PhoneNumberModel> call, Response<PhoneNumberModel> response) {
            String answ = response.body().getState();
            if(answ.equals("ok")) {
                //do something
            }
            else (answ.equals("waiting")){
                //i need to refresh my onResponce and get response.body().getState() again.
            }
        }

        @Override
        public void onFailure(Call<PhoneNumberModel> call, Throwable t) {
            t.printStackTrace();
        }
    });

我是这方面的初学者。是否可以在没有 RxJava 的情况下使用 Retrofit 2?

4

0 回答 0