1

Ich habe einen Webdienst in AWS EC2 gehostet und kann über den öffentlichen DNS auf die URL aus dem Webbrowser zugreifen. Wenn ich darauf durch Ausführen von Android Emulator, seine werfen "java.net.UnknownHostException: Kann Host host Instance.us-east-2.compute.amazonaws.com/getJSON"Zugriff auf Amazon EC2-Instanz über Android nicht möglich

i) Ich habe die Erlaubnis gegeben für INTERNET in Android Manifest. ii) Ich habe eine offene Gateway-Berechtigung 0.0.0.0.0 in Sicherheitsgruppe von EC2 Wohin gehe ich falsch?

@Override 
    protected String doInBackground(String... params) { 
     try { 

      // Enter URL address where your json file resides 
      // Even you can make call to php file which returns json data 
      url = new URL("http://Instance.us-east-2.compute.amazonaws.com/getJSON"); 




     } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
      return e.toString(); 
     } 
     try { 

      // Setup HttpURLConnection class to send and receive data from php and mysql 
      conn = (HttpURLConnection) url.openConnection(); 
      conn.setReadTimeout(READ_TIMEOUT); 
      conn.setConnectTimeout(CONNECTION_TIMEOUT); 
      conn.setRequestMethod("GET"); 


      // setDoOutput to true as we recieve data from json file 
      conn.setDoOutput(true); 

     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
      System.out.println("Printing stack "+e1.toString()); 
      return e1.toString(); 
     } 

     try { 

      int response_code = conn.getResponseCode(); 

      if (response_code == HttpURLConnection.HTTP_OK) { 

       // Read data sent from server 
       InputStream input = conn.getInputStream(); 
       BufferedReader reader = new BufferedReader(new InputStreamReader(input)); 
       StringBuilder result = new StringBuilder(); 
       String line; 

       while ((line = reader.readLine()) != null) { 
        result.append(line); 
       } 

       // Pass data to onPostExecute method 
       return (result.toString()); 

      } else { 

       return ("unsuccessful"); 


} 
+0

Ihre URL scheint nicht zugänglich zu sein. Es scheint eine get URL zu sein, aber ich kann immer noch nicht richtig darauf zugreifen. Prüfen Sie, ob Ihre Webdienste korrekt gehostet sind und Sie die aktuelle Firewall-Konfiguration vorgenommen haben –

+0

Kopieren Sie die echte URL aus Ihrem Code in Ihren Browser und stellen Sie sicher, dass sie zugänglich ist. Höchstwahrscheinlich haben Sie dort einen Tippfehler. – Putnik

+0

Danke für die Antworten. @ Kapsym, die URL, die ich hier erwähnt habe, ist nicht die echte. Ich habe es aus Sicherheitsgründen geändert. Aber ich kann die richtige Antwort erhalten, wenn ich über den Webbrowser darauf zugreife. –

Antwort

0

Der Kunde war ich nicht verwendet, könnte die Antwort der URL handhaben, die ich verwendet, benutzte ich AsynHttpClient this.Source Link zu beheben: http://loopj.com/android-async-http/

Verwandte Themen