java.net.UnknownHostException: Unable to resolve host "": No address associated with hostname and End of input at character 0 of
java.net.UnknownHostException: Не удается разрешить host "": нет адреса, связанного с именем хоста, и конец ввода на символе 0 в
Я создал приложение, которое загружает вопрос из моих веб-служб, и оно работает нормально. Но иногда оно выходит из строя, и я не понимаю причину, по которой это происходит, особенно потому, что я также предоставил ему необходимые разрешения. Он работает нормально, но случайным образом выходит из строя и выдает мне этот отчет.
privatevoidsendContinentQuestions(int id) { // TODO Auto-generated method stub
String response = ""; URL url; try { url = new URL(Consts.GET_URL+"index.php/Api/getQuestion?cat_id="+id); HttpURLConnection http = (HttpURLConnection) url.openConnection(); http.setRequestMethod("POST"); InputStream is = http.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); response = br.readLine(); Log.v("###Response :: ###",response); http.disconnect(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (ProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //try parse the string to a JSON object JSONArray jArray = null; try{
jArray = new JSONArray(response);
}catch(JSONException e){ Log.e("log_tag", "Error parsing data "+e.toString()); }
return jArray; }
11-1315:02:52.307: W/System.err(8012): java.net.UnknownHostException: Unable to resolve host "www.xyz.com": No address associated with hostname 11-1315:02:52.317: W/System.err(8012): at java.net.InetAddress.lookupHostByName(InetAddress.java:424) 11-1315:02:52.317: W/System.err(8012): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) 11-1315:02:52.317: W/System.err(8012): at java.net.InetAddress.getAllByName(InetAddress.java:214) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpConnection.connect(HttpConnection.java:128) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpEngine.connect(HttpEngine.java:311) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:282) 11-1315:02:52.317: W/System.err(8012): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177) 11-1315:02:52.327: W/System.err(8012): at com.abc.xyz.ContinentActivity.getJSONfromURL(ContinentActivity.java:400) 11-1315:02:52.327: W/System.err(8012): at com.abc.xyz.ContinentActivity.sendContinentQuestions(ContinentActivity.java:327) 11-1315:02:52.327: W/System.err(8012): at com.abc.xyz.ContinentActivity.access$2(ContinentActivity.java:323) 11-1315:02:52.327: W/System.err(8012): at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.java:254) 11-1315:02:52.327: W/System.err(8012): at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.java:1) 11-1315:02:52.327: W/System.err(8012): at android.os.AsyncTask$2.call(AsyncTask.java:287) 11-1315:02:52.327: W/System.err(8012): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 11-1315:02:52.327: W/System.err(8012): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 11-1315:02:52.327: W/System.err(8012): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 11-1315:02:52.337: W/System.err(8012): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 11-1315:02:52.337: W/System.err(8012): at java.lang.Thread.run(Thread.java:841) 11-1315:02:52.337: W/System.err(8012): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname) 11-1315:02:52.337: W/System.err(8012): at libcore.io.Posix.getaddrinfo(Native Method) 11-1315:02:52.337: W/System.err(8012): at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:61) 11-1315:02:52.337: W/System.err(8012): at java.net.InetAddress.lookupHostByName(InetAddress.java:405) 11-1315:02:52.337: W/System.err(8012): ... 24 more 11-1315:02:52.337: E/log_tag(8012): Error parsing data org.json.JSONException: End of input at character 0 of 11-1315:02:52.337: W/dalvikvm(8012): threadid=194: thread exiting with uncaught exception(group=0x417c1700) 11-1315:02:52.337: E/AndroidRuntime(8012): FATAL EXCEPTION: AsyncTask #5 11-1315:02:52.337: E/AndroidRuntime(8012): java.lang.RuntimeException: An error occured while executing doInBackground() 11-1315:02:52.337: E/AndroidRuntime(8012): at android.os.AsyncTask$3.done(AsyncTask.java:299) 11-1315:02:52.337: E/AndroidRuntime(8012): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) 11-1315:02:52.337: E/AndroidRuntime(8012): at java.util.concurrent.FutureTask.setException(FutureTask.java:219) 11-1315:02:52.337: E/AndroidRuntime(8012): at java.util.concurrent.FutureTask.run(FutureTask.java:239) 11-1315:02:52.337: E/AndroidRuntime(8012): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 11-1315:02:52.337: E/AndroidRuntime(8012): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 11-1315:02:52.337: E/AndroidRuntime(8012): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 11-1315:02:52.337: E/AndroidRuntime(8012): at java.lang.Thread.run(Thread.java:841) 11-1315:02:52.337: E/AndroidRuntime(8012): Caused by: java.lang.NullPointerException 11-1315:02:52.337: E/AndroidRuntime(8012): at com.abc.xyz.ContinentActivity.sendContinentQuestions(ContinentActivity.java:328) 11-1315:02:52.337: E/AndroidRuntime(8012): at com.abc.xyz.ContinentActivity.access$2(ContinentActivity.java:323) 11-1315:02:52.337: E/AndroidRuntime(8012): at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.java:254) 11-1315:02:52.337: E/AndroidRuntime(8012): at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.java:1) 11-1315:02:52.337: E/AndroidRuntime(8012): at android.os.AsyncTask$2.call(AsyncTask.java:287) 11-1315:02:52.337: E/AndroidRuntime(8012): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
Переведено автоматически
Ответ 1
Я тоже столкнулся с этой проблемой, повторное подключение Wi-Fi может решить эту проблему.
Что касается нас, мы можем проверить, может ли телефон преобразовать host в IP при запуске приложения. Если это не удается разрешить, попросите пользователя проверить Wi-Fi, а затем выйти.
Ответ 2
Если повторное подключение Wi-Fi у вас не работает, попробуйте перезагрузить устройство.
У меня это работает. Надеюсь, это поможет.
Ответ 3
У меня было такое же исключение в симуляторе (Android Studio на OSX), но подключение к тому же URL в симуляторе iOS работало нормально... Похоже, все это связано с тем фактом, что я запускал симулятор, подключенный к личной точке доступа для моего интернет-соединения, а затем возвращался позже, подключенный к Wi-Fi, и симулятору по какой-то причине не понравилось новое интернет-соединение, похоже, он думал, что старая точка доступа была текущим подключением, которое больше не работало..
Закрытие и перезапуск симулятора сработали!
Ответ 4
Я получил ту же ошибку, и проблема заключалась в том, что я был подключен к VPN и не осознавал этого. После отключения от VPN и повторного подключения к моей сети Wi-Fi проблема была решена.