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");
}
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 –
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
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. –