1
我在AWS EC2中托管了Web服务,并且可以使用公共DNS从Web浏览器访问URL。当我通过从android模拟器运行它来访问它时,它抛出“java.net.UnknownHostException:无法解析主机Instance.us-east-2.compute.amazonaws.com/getJSON”无法从Android访问Amazon EC2实例
i)我已经给予权限适用于Android Manifest的INTERNET。 ii)我在EC2 的安全组中有一个开放的网关权限0.0.0.0:0我在哪里出错?
@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");
}
您的网址似乎并没有被访问。这似乎是一个获取URL,但我仍然无法正确访问它。查看您的网络服务是否正确托管,并且您已经完成了当前的防火墙设置 –
将您的代码中的真实网址复制并粘贴到浏览器中,并确保它可以访问。很可能你在那里有错误。 – Putnik
感谢您的答复。 @kapsym,我在这里提到的URL不是真正的。我出于安全原因修改了它。但是,当我从Web浏览器访问它时,我可以得到正确的响应。 –