Android 在某些具有targetSdkVersion 29的设备上,HttpURLConnection超时
我更新了我的应用程序,它使用HttpURLConnection从targetSdkVersion 21到29的web服务读取数据。大多数设备的工作方式与以前一样,但sum客户报告问题。 我实现了一些测试函数来获取更多关于错误的信息。令人惊讶的是,连接超时并抛出SocketTimeoutException 你知道会出什么问题吗 简化了HttpURLConnection的使用:Android 在某些具有targetSdkVersion 29的设备上,HttpURLConnection超时,android,http,timeout,httpurlconnection,Android,Http,Timeout,Httpurlconnection,我更新了我的应用程序,它使用HttpURLConnection从targetSdkVersion 21到29的web服务读取数据。大多数设备的工作方式与以前一样,但sum客户报告问题。 我实现了一些测试函数来获取更多关于错误的信息。令人惊讶的是,连接超时并抛出SocketTimeoutException 你知道会出什么问题吗 简化了HttpURLConnection的使用: ... try { URL url = new URL( uri ); HttpURLConnection
...
try
{
URL url = new URL( uri );
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod( "GET" );
con.setConnectTimeout( 30000 );
con.setReadTimeout( 60000 );
int responseCode = con.getResponseCode();
if( responseCode == HttpURLConnection.HTTP_OK )
{
...
}
...
}
catch( SocketTimeoutException e )
{
...
}
...
首先,为什么要使用基本的HTTP URL连接?现在有很多更好的HTTP客户端。OkHttp是最好的。您可能需要在较新的设备上手动实现一些新功能,而像OkHttp这样的库可能已经在这些设备上实现了哪些Android版本?
以获取有关错误的更多信息。令人惊讶的是,连接超时并抛出SocketTimeoutException。
我想知道您以前没有通知用户。那么用户可能已经告诉你了。网络死机或互联网连接不良可能是导致SocketTimeout的原因!只需交叉检查面临问题的客户所使用的连接的internet性质。@AhmadAttout,我也尝试了OkHttp,但遇到了同样的问题,即它无法连接到服务器。