Хост не разрешен в локальной сети

Я получаю IOExeption «Хост не разрешен» на HttpPost. Конечная точка в этом случае — это компьютер в моей локальной сети с веб-сервисом. (http://pc259:8080/test/service.asmx). Я использую WIFI для моей локальной сети. Знает ли Android, как разрешать имена компьютеров?

StringEntity se = new StringEntity(xmlDataToSend);
se.setContentType("text/xml");
HttpPost httppost = new HttpPost(endPoint);     
httppost.setHeader("Content-Type","application/soap+xml");
httppost.setEntity(se);         
HttpClient httpclient = new DefaultHttpClient();
Log.i(TAG, " - Before execute");
httpResponse = (BasicHttpResponse) httpclient.execute(httppost);

person Sugarel    schedule 06.07.2010    source источник
comment
Вы не думали попробовать это с IP вместо pc259?   -  person Sephy    schedule 06.07.2010
comment
Я забыл об этом, да IP работает нормально. Но я не могу использовать это. Я получаю имя хоста из WSDL. Я должен использовать это. (или преобразовать его в IP, но для этого и нужен DNS)   -  person Sugarel    schedule 06.07.2010
comment
Можете ли вы получить доступ к машине с помощью приложения веб-браузера, встроенного в Android?   -  person Al Sutton    schedule 06.07.2010


Ответы (2)


Вы можете заставить Java разрешать имена NetBIOS с помощью библиотеки JCIFS. Вы можете получить его на странице http://jcifs.samba.org/. Добавьте это в свой проект, а затем используйте подобный код для преобразования имени хоста в IP-адрес.

import jcifs.netbios.NbtAddress;
...
NbtAddress nbtAddress = NbtAddress.getByName(hostname);
InetAddress address = nbtAddress.getInetAddress();
String ipAddress = address.getHostAddress();
person Matt Tsōnto    schedule 19.07.2011
comment
Это произошло, когда я опубликовал. Однако я не работал с ним несколько лет, поэтому я больше не в хорошем состоянии, чтобы помочь устранить неполадки. - person Matt Tsōnto; 25.06.2014
comment
@FlashThunder приведенный выше код должен возвращать IP-адрес. - person xmen; 29.11.2014

Скорее всего, pc259 не определено на вашем DNS-сервере, а является именем хоста NetBios (см. http://en.wikipedia.org/wiki/NetBIOS#NetBIOS_name_vs_host_name).
Я не думаю, что Android может разрешать такие имена хостов — вам нужно будет добавить этот компьютер в репозиторий DNS.

person adamk    schedule 08.07.2010
comment
и как бы вы добавили компьютер в репозиторий DNS. - person xmen; 29.11.2014