Socket timeout in android

Получение java.сеть.SocketTimeoutException: время ожидания соединения в android

Я относительно новичок в разработке android. Я разрабатываю приложение для android, где я отправляю запрос на веб-сервер и анализирую объекты json. Часто я получаю java.net.SocketTimeoutException: Connection timed out исключение при общении с сервером. Иногда это будет работать совершенно без каких-либо проблем. Я знаю, что этот вопрос задавали много раз. Но все же я не получил удовлетворительного решения этой проблемы. Я отправляю свой код связи logcat и app-server под.

может ли кто-нибудь помочь мне найти решение для этого? Спасибо заранее.

5 ответов

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

Я знаю, что этот вопрос немного старый. Но поскольку я наткнулся на это во время исследования, я подумал, что небольшое дополнение может быть полезно.

как указано, ошибка не может быть решена клиентом, так как это проблема, связанная с сетью. Однако вы можете повторить попытку подключения несколько раз. Это может работать как обходной путь, пока реальная проблема не будет исправлена.

возможно, это кому-то помогает.

Если вы тестируете сервер localhost в ваше Android устройство должно быть подключено к той же локальной сети. Затем URL-адрес сервера, используемый вашим приложением, должен включать IP-адрес вашего компьютера, а не маску «localhost».

Читайте также:  Андроид тв бокс x95

Я столкнулся с этой проблемой и решение было перезагрузить модем (роутер). После этого я мог бы подключиться к интернету для своего приложения.

Я думаю, что библиотеку я использую не управлять должным образом, поскольку это happeend всего несколько раз.

Источник

Timeout

The HttpTimeout plugin (previously known as feature) allows you to configure the following timeouts:

request timeout — a time period required to process an HTTP call: from sending a request to receiving a response.

connection timeout — a time period in which a client should establish a connection with a server.

socket timeout — a maximum time of inactivity between two data packets when exchanging data with a server.

You can specify these timeouts for all requests or only specific ones.

Add dependencies

HttpTimeout only requires the ktor-client-core artifact and doesn’t need any specific dependencies.

Install HttpTimeout

To install HttpTimeout , pass it to the install function inside a client configuration block:

Configure timeouts

To configure timeouts, you can use corresponding properties:

You can specify timeouts for all requests inside the install block. The code sample below shows how to set a request timout using requestTimeoutMillis :

If you need to set a timeout only for a specific request, use the HttpRequestBuilder.timeout property:

Note that timeouts specified for a specific request override global timeouts from the install block.

In a case of a timeout, Ktor throws HttpRequestTimeoutException , HttpConnectTimeoutException , or HttpSocketTimeoutException .

Limitations

HttpTimeout has some limitations for specific engines:

iOS doesn’t support a connection timeout.

JavaScript supports only a request timeout.

Источник

Оцените статью