我有一份工作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)
功能downloadUrl :
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();
}
答案 0 :(得分:3)
事实证明我的数据提供商的DNS服务器存在问题。因为我的服务器刚刚更改了IP地址,而DNS服务器尚未更新。
答案 1 :(得分:1)
您是否尝试过延长连接时间?也许你的移动数据连接太慢,与你的wifi相反。在这里使用try和catch并发布异常,我认为在这种情况下它会比logcat更有用。