0

我在 HttpPost 上收到 IOExeption 'Host is unresolved'。在这种情况下,端点是我 LAN 上带有 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);
4

2 回答 2

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();
于 2011-07-19T22:27:00.573 回答
1

很可能pc259没有在您的 DNS 服务器中定义,而是 NetBios 主机名(请参阅http://en.wikipedia.org/wiki/NetBIOS#NetBIOS_name_vs_host_name)。
我认为 Android 无法解析此类主机名 - 您需要将此计算机添加到 DNS 存储库。

于 2010-07-08T05:36:52.000 回答