0

私の Android アプリケーションは .Net Web サービスと通信します。ksoap2 ライブラリを使用して Web サービスと通信します。

Webサービスでメソッドをアクティブにするたびに、時間がかかりすぎることがわかります。HttpTransportSE.call()メソッドをデバッグしたところ、メソッドInetAddress.getHostByAddrImpl(byte[])に不明なホスト例外が 20 秒ほど後に発生したことがわかりました...

私のURLはIPアドレスであり、DNSルックアップは必要ないため、奇妙です...

このコードを実行している場合でも、この例外が発生します。

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

誰かがこれを修正する方法を説明できますか?

ありがとう!!

4

3 に答える 3

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());
于 2012-11-25T13:48:08.810 に答える
0

SIM カードが利用可能な DNS サーバーのどれにもアクセスできないことがわかりました。

だから私はsystem/etc/hostsファイルを操作し、そこにマッピングを追加しました。

アプリケーションが dns サーバーにアドレスを要求する前に、system/etc/hostsファイルのチェックがあります。

マッピングを追加した後、すべてうまくいきました。

助けてくれてありがとう。

于 2012-11-26T10:36:51.140 に答える
-1

IP アドレスを使用するgetAllByName()には、 の代わりに使用する必要がありgetByName()ます。こちらのドキュメントを参照してください。だから交換

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

InetAddress.getAllByName("192.168.191.110").getCanonicalHostName();
于 2012-11-25T13:32:48.300 に答える