отказано в соединении при попытке подключиться к моему серверу REST из эмулятора Android - PullRequest
6 голосов
/ 01 июля 2011

рассмотрите следующий код Android и, пожалуйста, решите мою проблему: На моем ноутбуке работает REST-сервер. Я могу получить доступ к этому серверу из моего браузера и получить необходимые результаты ... но теперь я хочу использовать его с моего эмулятора Android, который также работает на моем ноутбуке, используя следующий код ..

 // String URL = "http://localhost:8080/server/rest/user/1";
 String URL = "http://www.google.com";

HttpClient httpclient = new DefaultHttpClient();
HttpGet request = new HttpGet(URL);
HttpResponse result = httpclient.execute(request);

в эмуляторе, когда я передаю URL как http://www.google.com, я получаю правильный ответ в результате, но когда я использую свой локальный URL (прокомментированный выше), я получаю соединение отказано ....

WARN/System.err(901): org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8080 refused
WARN/System.err(901): Caused by: java.net.ConnectException: /127.0.0.1:8080 - Connection refused

если я запускаю тот же URL в моем браузере, это работает. Можете ли вы сказать мне, почему локальный URL не работает в эмуляторе? ..

Ответы [ 3 ]

23 голосов
/ 24 июля 2011

Анкур, у меня была такая же проблема, но замена localhost на 10.0.2.2 работала для меня. Также убедитесь, что вы добавили строку <использует-разрешение android: name = "android.permission.INTERNET" />

в теге в файле AndroidManifest.xml.

Спасибо Адил и Роджерстоун за ваши ответы.

-Ajmal

1 голос
/ 01 июля 2011

Замените ваш URL на http://10.0.2.2:8080/server/rest/user/1. Это должно сработать.

0 голосов
/ 22 августа 2013

Убедитесь, что вы не используете соединение в основном потоке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...