Loopj AsyncHttpClient JsonHttpResponseHandler не получает исключение тайм-аута - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь подключиться к серверу, используя следующий код. Однако я не могу получить тайм-аут даже после выключения сервера. Я хочу знать, где я иду не так.

Однако я получаю вызов функции onFinish. Но не в состоянии различить, если это из-за успешного выполнения запроса или по какой-либо другой причине.

Я хочу знать, почему я не получаю тайм-ауты и как я могу изменить свой код, чтобы реализовать функцию для обработки тайм-аута, когда сервер не работает.

 fun getJSONData() {

        Toast.makeText(this@LoginActivity, " Starting to Get Data", Toast.LENGTH_LONG).show()

        val client = AsyncHttpClient()
        client.addHeader("X-Csrf-Token", "fetch")
        client.addHeader("Accept", "application/json")
        client.setBasicAuth("userid", "pwd")
        client.responseTimeout = 1000
        client.setTimeout(1000)
        client.connectTimeout = 1000

        Toast.makeText(this@LoginActivity, "---->" + client.connectTimeout + ':' + client.responseTimeout, Toast.LENGTH_LONG).show()

        client.get(getURL, object : JsonHttpResponseHandler() {

            override fun onSuccess(statusCode: Int, headers: Array<out Header>, response: JSONObject) {

                super.onSuccess(statusCode, headers, response)

              // do further processing

            }

            override fun onFailure(statusCode: Int, headers: Array<out Header>?, responseString: String?, throwable: Throwable?) {

                super.onFailure(statusCode, headers, responseString, throwable)

            }

            override fun onFinish() {
                super.onFinish()


            }

            override fun onRetry(retryNo: Int) {
                super.onRetry(retryNo)
            }
        })
    }

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Мы реализовали функцию переопределения onFailure с различными параметрами и работали как шарм.

Заменить этот код

override fun onFailure(statusCode: Int, headers: Array<out Header>?, responseString: String?, throwable: Throwable?) {

            super.onFailure(statusCode, headers, responseString, throwable)

        }

с этим

override fun onFailure(statusCode: Int, headers: Array<out Header>?, responseString: String?, throwable: Throwable?) {

                super.onFailure(statusCode, headers, responseString, throwable)

            }

Мы обнаружили это, пройдя через ошибки logcat этого приложения, которые ожидали реализации второй функции.

0 голосов
/ 19 января 2019

Этот работал для меня

 try {
                URL url = new URL(sUrl);
                HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
                connection.setConnectTimeout(iConnectTimeout); //default 9999ms
                connection.setReadTimeout(iReadTimeout);    // def 9999
                connection.setRequestMethod(sMethod);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...