3


我有工作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();
}
4

2 回答 2

4

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

于 2013-05-20T20:36:35.897 回答
1

您是否尝试过增加连接超时?也许您的移动数据连接速度太慢了,与您的 wifi 相比。在这里使用 try 和 catch 并发布异常,我认为在这种情况下它会比 logcat 更有帮助。

于 2013-05-15T07:51:34.510 回答