Использование URL на Android вызывает IOException: искаженный адрес ipv6 - PullRequest
3 голосов
/ 25 июля 2011

Я хочу отправить данные на эмуляторе Android на локальный хост и получить некоторые результаты.

String temp = "http://10.0.2.2:8888/json/rec?user_data=" + user_data + "&friends=" + friends;
URL url = new URL(temp);

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setReadTimeout(5000);
InputStreamReader is = new InputStreamReader(urlConnection.getInputStream(), "UTF-8");
String output = "";
while(is.ready()) {
    output += is.read();
}

Вот исключение.

java.io.IOException: Malformed ipv6 address: [10.0.2.2:8888]

Почему это сказанотот?Может ли кто-нибудь помочь мне?Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 25 июля 2011

Это известная ошибка, которая будет исправлена ​​в следующем выпуске.

http://code.google.com/p/android/issues/detail?id=12724

Простое решение - использовать другой конструктор для URL-адреса ... тот, который принимает имя хоста, порти файл

URL(String protocol, String host, int port, String file)

РЕДАКТИРОВАТЬ

В вашем случае это будет

URL url = new URL("http", "10.0.2.2" , 8888 , "json/rec?user_data=" + user_data + "&friends=" + friends);
0 голосов
/ 11 ноября 2012

Возможно, потому что хост содержит двоеточие, что означает, что это цифровой адрес IPv6

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