我在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);
答案 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存储库。