Как заменить на локальную ссылку?Android - PullRequest
1 голос
/ 22 марта 2012

Я анализирую XML-файл.
Один из методов ниже:

public static String getXML(){   
        String line = null;

        try {

            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost("http://p-xr.com/xml/");

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            line = EntityUtils.toString(httpEntity);

        } catch (UnsupportedEncodingException e) {
            line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
        } catch (MalformedURLException e) {
            line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
        } catch (IOException e) {
            line = "<results status=\"error\"><msg>Can't connect to server</msg></results>";
        }

        return line;

}

Здесь я хочу заменить

HttpPost httpPost = new HttpPost("http://p-xr.com/xml/");

по

HttpPost httpPost = new HttpPost("http://127.0.0.1/myfile.xml");

Как я могу просматривать http://127.0.0.1/myfile.xml в моем браузере. Но когда я пишу этот адрес в коде выше, это работает. Зачем ? Мой проект требует http метод для доступа к XML-файлу.

Ответы [ 4 ]

2 голосов
/ 22 марта 2012

В эмуляторе localhost - это сам эмулятор, а не ваша система, которая запускает эмулятор.Так что это не сработает.

Вместо этого используйте 10.0.2.2.

1 голос
/ 22 марта 2012

Если вы хотите сделать это с устройством Android:

Вы можете узнать IP-адрес вашего компьютера, используя ifconfig на Mac или Linux или ipconfig на Windows.

Затем вы можете заменить p-xr.com / 127.0.0.1 на этот IP-адрес.

Вам необходимо убедиться, что на вашем компьютере не установлен брандмауэр, и еслипоэтому вам необходимо разрешить доступ к вашему устройству Android, чтобы связаться с локальным HTTP-сервером.

1 голос
/ 22 марта 2012

В эмуляторе есть некоторые специально определенные псевдонимы адресов, используемые для доступа к сетям вне самого эмулятора.

Чтобы получить доступ к localhost в системе, в которой запущен эмулятор (т. Е. Хост-система), используйте 10.0.2.2

Ссылка здесь:

http://developer.android.com/guide/developing/devices/emulator.html#emulatornetworking

1 голос
/ 22 марта 2012

Используйте 10.0.2.2 в этом случае, проверьте Сеть эмулятора .

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