java.net.SocketTimeoutException:连接失败

java.net.SocketTimeoutException:连接失败,java,android,httpurlconnection,socket-timeout-exception,Java,Android,Httpurlconnection,Socket Timeout Exception,我有一个工作的xmlparser 但不幸的是,我在使用移动数据时出错。 此问题不会出现在Wi-Fi上,并且该页面随时可用。 我做错了什么? 我有上网的许可证 堆栈跟踪: 05-14 21:26:35.628: W/System.err(17691): java.net.SocketTimeoutException: failed to connect to buie.vlsolutions.nl/185.10.98.4 (port 80) after 15000ms 05-14


我有一个工作的
xmlparser

但不幸的是,我在使用移动数据时出错。
此问题不会出现在Wi-Fi上,并且该页面随时可用。
我做错了什么?
我有上网的许可证

堆栈跟踪

    05-14 21:26:35.628: W/System.err(17691): java.net.SocketTimeoutException: failed to connect to buie.vlsolutions.nl/185.10.98.4 (port 80) after 15000ms
    05-14 21:26:35.633: W/System.err(17691):    at libcore.io.IoBridge.connectErrno(IoBridge.java:159)
    05-14 21:26:35.633: W/System.err(17691):    at libcore.io.IoBridge.connect(IoBridge.java:112)
    05-14 21:26:35.633: W/System.err(17691):    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
    05-14 21:26:35.633: W/System.err(17691):    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
    05-14 21:26:35.633: W/System.err(17691):    at java.net.Socket.connect(Socket.java:842)
    05-14 21:26:35.633: W/System.err(17691):    at libcore.net.http.HttpConnection.<init>(HttpConnection.java:76)
    05-14 21:26:35.638: W/System.err(17691):    at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
    05-14 21:26:35.638: W/System.err(17691):    at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
    05-14 21:26:35.638: W/System.err(17691):    at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
    05-14 21:26:35.638: W/System.err(17691):    at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
    05-14 21:26:35.638: W/System.err(17691):    at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
    05-14 21:26:35.638: W/System.err(17691):    at libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
    05-14 21:26:35.638: W/System.err(17691):    at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
    05-14 21:26:35.638: W/System.err(17691):    at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
    05-14 21:26:35.638: W/System.err(17691):    at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
    05-14 21:26:35.638: W/System.err(17691):    at nl.vlsolutions.buienl.MainActivity.downloadUrl(MainActivity.java:475)
    05-14 21:26:35.638: W/System.err(17691):    at nl.vlsolutions.buienl.MainActivity.loadXmlFromNetwork(MainActivity.java:342)
    05-14 21:26:35.638: W/System.err(17691):    at nl.vlsolutions.buienl.MainActivity.access$2(MainActivity.java:334)
    05-14 21:26:35.643: W/System.err(17691):    at nl.vlsolutions.buienl.MainActivity$DownloadXmlTask.doInBackground(MainActivity.java:307)
    05-14 21:26:35.643: W/System.err(17691):    at nl.vlsolutions.buienl.MainActivity$DownloadXmlTask.doInBackground(MainActivity.java:1)
    05-14 21:26:35.643: W/System.err(17691):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
    05-14 21:26:35.643: W/System.err(17691):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    05-14 21:26:35.643: W/System.err(17691):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    05-14 21:26:35.643: W/System.err(17691):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
    05-14 21:26:35.643: W/System.err(17691):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    05-14 21:26:35.643: W/System.err(17691):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    05-14 21:26:35.648: W/System.err(17691):    at java.lang.Thread.run(Thread.java:856)
private InputStream downloadUrl(String urlString) throws IOException {
    URL url = new URL(urlString);
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setReadTimeout(10000 /* milliseconds */);
    conn.setConnectTimeout(15000 /* milliseconds */);
    conn.setRequestMethod("GET");
    conn.setDoInput(true);
    // Starts the query
    conn.connect();     // Line 475
    return conn.getInputStream();
}

您是否尝试增加连接超时时间?可能您的移动数据连接速度太慢,与您的wifi相反。使用try-and-catch并在此处发布异常,我认为在这种情况下,它将比logcat更有用。

事实证明,我的数据提供商提供的DNS服务器存在问题。因为我的服务器刚刚更改了IP地址,DNS服务器尚未更新。

我的连接速度并不慢,但是当我尝试在浏览器中访问URL时,它也显示了一个错误。所以我不知道现在在哪里搜索,因为服务器总是可用的。