Модификация, TimeoutException onFailure

Я использую модифицированную аутентификацию, и у меня есть время для исключения. Я видел много вопросов, но я не могу решить это.

Вот код

public class FragmentRegistration extends Fragment {
    View mainView;

    EditText username, email, password, name;
    Button button;

    ApiClient pentairAPIClient = ApiClient.getInstance();

    SupportopObj supportopObj = new SupportopObj();
    SupportopObjActivate supportopObjActivate = new SupportopObjActivate();

    @Override
    public View onCreateView(LayoutInflater inflater,
                             @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        mainView = inflater.inflate
                (R.layout.registration, container, false);

        username = mainView.findViewById(R.id.username);
        email = mainView.findViewById(R.id.email);
        password = mainView.findViewById(R.id.password);
        name = mainView.findViewById(R.id.name);
        button = mainView.findViewById(R.id.register);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //String s = name.getText().toString();
                //String split[] = s.split(" ");

                supportopObj.setFirstName("Tester");
                supportopObj.setLastName("Testryan");
                supportopObj.setUsername(username.getText().toString());
                supportopObj.setEmail(email.getText().toString());
                supportopObj.setPassword(password.getText().toString());

                supportopObjActivate.setUsername(supportopObj.getUsername());
                supportopObjActivate.setEmail(supportopObj.getEmail());
                supportopObjActivate.setPassword(supportopObj.getPassword());
                supportopObjActivate.setType("generic");
                updateApp();               
            }
        });

        return mainView;
    }


    public void updateApp() {

        Call<ResponseBody> call = pentairAPIClient.registration(supportopObj);
        call.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                if (response.isSuccessful()) {
                    activationCall();

                } else {
                    Toast.makeText(getContext(), "Something went wrong",
                            Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Toast.makeText(getContext(), "Error...", Toast.LENGTH_SHORT).show();
            }
        });
    }


    public void activationCall() {
        Call<ResponseBody> callActive = pentairAPIClient.activation(supportopObjActivate);
        callActive.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {

                if (response.isSuccessful()) {

                    try {
                        String data = response.body().string();
                        JSONObject obj = new JSONObject(data);
                        String client_id = obj.getString("client_id");
                        String client_secret = obj.getString("client_secret");

                        tokenCall(client_id, client_secret);

                    } catch (JSONException | IOException e) {
                        e.printStackTrace();
                    }

                } else {
                    Toast.makeText(getContext(), "error", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Toast.makeText(getContext(), "Error in activation",
                        Toast.LENGTH_SHORT).show();
            }
        });
    }


    public void tokenCall(String client_id, String client_secret) {
        Call<ResponseBody> token = pentairAPIClient.get_token("password", client_id, client_secret,
                supportopObj.getEmail(), supportopObj.getPassword());

        token.enqueue(new Callback<ResponseBody>() {
            @Override
            public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
                if (response.isSuccessful()) {
                    Toast.makeText(getContext(), String.valueOf(response.body()), Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getContext(), "Something wrong.....", Toast.LENGTH_SHORT).show();
                }
            }

            @Override
            public void onFailure(Call<ResponseBody> call, Throwable t) {
                Toast.makeText(getContext(), "You're on failure", Toast.LENGTH_SHORT).show();
            }
        });
    }

У меня нет ошибок при модернизации, я выполняю отладку и вижу весь процесс, поэтому я успешно получаю идентификатор клиента и секрет, а затем получаю временное исключение в последнем onfailure(),

 @Override
    public void onFailure(Call<ResponseBody> call, Throwable t) 
{
    Toast.makeText(getContext(), "You're onfailure",Toast.LENGTH_SHORT).show();
} 

посмотрите код, это последняя строка. Как это исправить? Приложение не вылетает, но при отладке он сбрасывает время до такого исключения.
t={SocketTimeoutException@830038722120}java.net.SocketTimeoutException: timeout

В OkHttpClient.

readTimeout(10, TimeUnit.SECONDS).connectTimeout(10, TimeUnit.SECONDS).writeTimeout(10, TimeUnit.SECONDS); 

все 10, я пытался установить его 100, не помогает. Помоги мне. Благодарю.

1 ответ

@Hayk Mkrtchyan

только внутри вашего

onFailure(Call<ResponseBody> call, Throwable t) {
     System.out.println(t.getMessage());  //you will get "timeout" as a string in case of actual timeout
}

Контроль приложений в основном идет в случае таймаута

1) Api медленно реагирует

2) Проверьте сетевое соединение

Также тайм-аут соединения с 10 сек очень мал, попробуйте установить его как минимум 60 сек

Другие вопросы по тегам