我尝试刷新(或更新)我的响应(在获取中)并提取正文字段获取状态。当我尝试这样做时,我得到了无休止的“等待”,但我的服务器已经返回“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?