android ksoap2 ip地址的未知主机异常

时间:2012-11-25 13:30:03

标签: java android http ksoap2

我的android应用程序与.Net webservice通信。 我使用kso​​ap2库与Web服务进行通信。

我看到,每次我在网络服务中激活方法都需要花费太长时间。 我调试到HttpTransportSE.call()方法,我发现在InetAddress.getHostByAddrImpl(byte[])方法中有一个未知的主机异常在20秒后被抛出......

它很奇怪,因为我的url是一个ip地址,并且不需要dns查找...

即使在运行此代码时,此异常也会被播出:

InetAddress.getByName("192.168.191.110").getCanonicalHostName();

有人能解释我如何解决这个问题吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

也许您忘了在AndroidManifest.xml中添加权限:

<uses-permission android:name="android.permission.INTERNET" /> 

修改

试试这个:

java.net.InetAddress[] x= java.net.InetAddress.getAllByName("192.168.191.110") ;
textView.setText("Address: "+x[0].getHostAddress());

答案 1 :(得分:0)

我发现我的SIM卡无法访问任何可用的DNS服务器。

所以我使用system/etc/hosts文件并在那里添加了映射。

在应用程序向dns服务器询问地址之前,检查system/etc/hosts文件。

在我添加映射后,一切运行良好。

感谢您的帮助。

答案 2 :(得分:-1)

要使用IP地址,您必须使用getAllByName()代替getByName()。见docs here。 所以替换

InetAddress.getByName("192.168.191.110").getCanonicalHostName();

InetAddress.getAllByName("192.168.191.110").getCanonicalHostName();