java.net.SocketTimeoutException: impossible de se connecter
Je dispose de travail xmlparser
Mais malheureusement j'ai une erreur quand je suis sur mobile de données.
Le problème ne se produit pas sur une connexion Wi-Fi gratuite et de la page est disponible à tout moment.
Que dois-je faire de mal?
J'ai l'autorisation pour Internet.
Trace de la pile:
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)
Fonction 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();
}
Vous devez vous connecter pour publier un commentaire.
Il s'avère qu'il y a un problème avec le Serveur DNS de mon fournisseur de données. Parce que mon serveur juste de changer les adresses IP et le Serveur DNS n'a pas été encore mis à jour.
Avez-vous essayé d'augmenter le délai de connexion? peut-être que votre connexion de données mobiles est trop lent contrairement à votre wifi. utiliser try et catch et post l'exception ici, je pense que ça va être plus utile que le logcat dans ce cas.