Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在某些具有targetSdkVersion 29的设备上,HttpURLConnection超时_Android_Http_Timeout_Httpurlconnection - Fatal编程技术网

Android 在某些具有targetSdkVersion 29的设备上,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

我更新了我的应用程序,它使用HttpURLConnection从targetSdkVersion 21到29的web服务读取数据。大多数设备的工作方式与以前一样,但sum客户报告问题。 我实现了一些测试函数来获取更多关于错误的信息。令人惊讶的是,连接超时并抛出SocketTimeoutException

你知道会出什么问题吗

简化了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,但遇到了同样的问题,即它无法连接到服务器。