web-dev-qa-db-fra.com

java.net.UnknownHostException: Impossible de résoudre l'hôte "<url>": aucune adresse associée au nom d'hôte et fin de la saisie au caractère 0 de

J'ai créé une application qui charge une question à partir de mes services Web, et cela fonctionne bien. Mais, parfois, il se bloque et je ne comprends pas la raison pour laquelle cela se produit, en particulier parce que je lui ai également donné les autorisations requises. Cela fonctionne bien, mais au hasard, il se bloque et me donne ce rapport.

private void sendContinentQuestions(int id) {
    // TODO Auto-generated method stub

    //Get the data (see above)
    JSONArray json = getJSONfromURL(id);
        try{
            for(int i=0; i < json.length(); i++) {
                HashMap<String, String> map = new HashMap<String, String>();
                JSONObject jObject = json.getJSONObject(i);
                longitude":"72.5660200"
                String category_id = jObject.getString("category_id");
                String question_id = jObject.getString("question_id");
                String question_name = jObject.getString("question_name");
                String latitude = jObject.getString("latitude");
                String longitude = jObject.getString("longitude");
                String answer = jObject.getString("answer");
                String ansLatLng = latitude+"|"+longitude ; 
                Log.v("## data:: ###",question_id+"--"+question_name+"-cat id-"+category_id+"--ansLatLng "+ansLatLng+" answer: "+answer);

                all_question.add(new QuestionData(game_id,category_id,question_id,question_name,ansLatLng,answer));
            }
        }catch(JSONException e)        {
            Log.e("log_tag", "Error parsing data "+e.toString());
        }
    }


}
 public JSONArray getJSONfromURL(int id){

    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-13 15:02:52.307: W/System.err(8012): Java.net.UnknownHostException: Unable to resolve Host "www.xyz.com": No address associated with hostname
11-13 15:02:52.317: W/System.err(8012):     at Java.net.InetAddress.lookupHostByName(InetAddress.Java:424)
11-13 15:02:52.317: W/System.err(8012):     at Java.net.InetAddress.getAllByNameImpl(InetAddress.Java:236)
11-13 15:02:52.317: W/System.err(8012):     at Java.net.InetAddress.getAllByName(InetAddress.Java:214)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpConnection.<init>(HttpConnection.Java:70)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpConnection.<init>(HttpConnection.Java:50)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.Java:340)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.Java:87)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpConnection.connect(HttpConnection.Java:128)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.Java:316)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpEngine.connect(HttpEngine.Java:311)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.Java:290)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.Java:240)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.Java:282)
11-13 15:02:52.317: W/System.err(8012):     at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.Java:177)
11-13 15:02:52.327: W/System.err(8012):     at com.abc.xyz.ContinentActivity.getJSONfromURL(ContinentActivity.Java:400)
11-13 15:02:52.327: W/System.err(8012):     at com.abc.xyz.ContinentActivity.sendContinentQuestions(ContinentActivity.Java:327)
11-13 15:02:52.327: W/System.err(8012):     at com.abc.xyz.ContinentActivity.access$2(ContinentActivity.Java:323)
11-13 15:02:52.327: W/System.err(8012):     at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.Java:254)
11-13 15:02:52.327: W/System.err(8012):     at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.Java:1)
11-13 15:02:52.327: W/System.err(8012):     at Android.os.AsyncTask$2.call(AsyncTask.Java:287)
11-13 15:02:52.327: W/System.err(8012):     at Java.util.concurrent.FutureTask.run(FutureTask.Java:234)
11-13 15:02:52.327: W/System.err(8012):     at Android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.Java:230)
11-13 15:02:52.327: W/System.err(8012):     at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1080)
11-13 15:02:52.337: W/System.err(8012):     at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:573)
11-13 15:02:52.337: W/System.err(8012):     at Java.lang.Thread.run(Thread.Java:841)
11-13 15:02:52.337: W/System.err(8012): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
11-13 15:02:52.337: W/System.err(8012):     at libcore.io.Posix.getaddrinfo(Native Method)
11-13 15:02:52.337: W/System.err(8012):     at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.Java:61)
11-13 15:02:52.337: W/System.err(8012):     at Java.net.InetAddress.lookupHostByName(InetAddress.Java:405)
11-13 15:02:52.337: W/System.err(8012):     ... 24 more
11-13 15:02:52.337: E/log_tag(8012): Error parsing data org.json.JSONException: End of input at character 0 of 
11-13 15:02:52.337: W/dalvikvm(8012): threadid=194: thread exiting with uncaught exception (group=0x417c1700)
11-13 15:02:52.337: E/AndroidRuntime(8012): FATAL EXCEPTION: AsyncTask #5
11-13 15:02:52.337: E/AndroidRuntime(8012): Java.lang.RuntimeException: An error occured while executing doInBackground()
11-13 15:02:52.337: E/AndroidRuntime(8012):     at Android.os.AsyncTask$3.done(AsyncTask.Java:299)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at Java.util.concurrent.FutureTask.finishCompletion(FutureTask.Java:352)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at Java.util.concurrent.FutureTask.setException(FutureTask.Java:219)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at Java.util.concurrent.FutureTask.run(FutureTask.Java:239)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at Android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.Java:230)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1080)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:573)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at Java.lang.Thread.run(Thread.Java:841)
11-13 15:02:52.337: E/AndroidRuntime(8012): Caused by: Java.lang.NullPointerException
11-13 15:02:52.337: E/AndroidRuntime(8012):     at com.abc.xyz.ContinentActivity.sendContinentQuestions(ContinentActivity.Java:328)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at com.abc.xyz.ContinentActivity.access$2(ContinentActivity.Java:323)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.Java:254)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at com.abc.xyz.ContinentActivity$LoadQuestions.doInBackground(ContinentActivity.Java:1)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at Android.os.AsyncTask$2.call(AsyncTask.Java:287)
11-13 15:02:52.337: E/AndroidRuntime(8012):     at Java.util.concurrent.FutureTask.run(FutureTask.Java:234)
52
Reshma

J'ai rencontré ce problème aussi, la reconnexion du WiFi peut résoudre ce problème.

Pour nous, nous pouvons vérifier si le téléphone peut résoudre l'hôte vers IP lorsque nous démarrons l'application. Si le problème persiste, demandez à l'utilisateur de vérifier le WiFi et de quitter.

J'espère que ça aide.

162
RxRead

J'ai eu la même exception dans le simulateur (Android Studio sur OSX) mais la connexion à la même URL sur le simulateur iOS a bien fonctionné ... On dirait que tout cela vient du fait que j'exécute le simulateur alors que je suis connecté à un point d'accès personnel pour ma connexion Internet et puis est revenu plus tard alors qu’il était connecté au wifi et que le simulateur n’aimait pas la nouvelle connexion Internet pour une raison quelconque, on dirait qu’il pensait que l’ancien hotspot était la connexion actuelle, qui ne fonctionnait plus ..

Fermer et relancer le simulateur a fonctionné!

11
CMash

Si la reconnexion du WiFi ne fonctionne pas pour vous, essayez de redémarrer votre appareil.

Cela fonctionne pour moi. J'espère que ça aide.

9
Jiyeh

J'ai eu la même erreur et le problème était que j'étais sur VPN et que je ne m'en rendais pas compte. Après la déconnexion du VPN et la reconnexion à mon réseau WIFI, le problème a été résolu.

5
adubey

Omission de configurer la balise dans le fichier manifeste

<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE" />
4
Ajay Takur

J'ai rencontré cette erreur lors de l'exécution de mon Android sur mon réseau Wi-Fi domestique, puis de l'exécuter sur un réseau Wi-Fi différent sans fermer mon simulateur.

Fermer simplement le simulateur et relancer l'application a fonctionné pour moi!

2
A. Sullivan

Je testais mon application avec l'émulateur Android et j'ai résolu ce problème en éteignant et en activant le Wi-Fi sur le périphérique Android! Il fonctionnait parfaitement .