Есть простой запрос. В условии я ловлю ошибку 403.
.enqueue(new Callback<NewOrderResponse>() {
@Override
public void onResponse(Call<NewOrderResponse> call, Response<NewOrderResponse> response) {
if (response.code() == 403) {
connect.login(manager, manager.getphone(), manager.getpass());
connect.reconnectNewOrder(manager.getsessionid(), new Gson().toJson(newOrderRequest));
}
}
И я вызываю логин ( connect.login (manager, manager.getphone (), manager.getpass ()); ) метод:
.login(login, passFromSms)
.enqueue(new Callback<AuthResponse>() {
@Override
public void onResponse(Call<AuthResponse> call, Response<AuthResponse> response) {
if (response.code() == 200) {
// Save id session
Headers header = response.headers();
List<String> cookieList = header.values("Set-Cookie");
_jsessionid = (cookieList.get(0).split(";"))[0];
manager.savesession(_jsessionid);
}
}
В этом методе мне нужно сохранить новый идентификатор сеанса.
Но как только программа входит в метод .login (login, passFromSms)
и выполняет его, он немедленно выходит из метода (и не сохраняет сеанс для меня) и выполняет метод:
connect.reconnectNewOrder (manager.getsessionid (), new Gson (). to Json (newOrderRequest));
И получается, что этот метод выполняется со старым сеансом.
Выполнение программы не является последовательным, почему так?
В чем проблема? Что я могу сделать, чтобы программа работала последовательно или какие есть варианты?