主机在LAN中未解析

时间:2010-07-06 07:58:21

标签: android host http-post

我在HttpPost上获得了IOExeption'主机未解决'。在这种情况下,端点是我的局域网上的一台带有Web服务的计算机。 (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);

2 个答案:

答案 0 :(得分:3)

您可以使用JCIFS库让Java解析NetBIOS名称。你可以从http://jcifs.samba.org/获得它。将其添加到项目中,然后使用此类代码将主机名转换为IP地址。

import jcifs.netbios.NbtAddress;
...
NbtAddress nbtAddress = NbtAddress.getByName(hostname);
InetAddress address = nbtAddress.getInetAddress();
String ipAddress = address.getHostAddress();

答案 1 :(得分:1)

您的DNS服务器中很可能未定义pc259,但它是NetBios主机名(请参阅http://en.wikipedia.org/wiki/NetBIOS#NetBIOS_name_vs_host_name)。
我不认为Android可以解析这些主机名 - 您需要将此计算机添加到DNS存储库。