4

非常に具体的な Android HTC Rezound の問題があり、誰かが解決策を持っていることを願っています。

HTC Rezound を使用して 4g ネットワークに接続しているときに、HttpURLConnection を使用してサーバーに接続しようとすると、不明なホスト例外エラーが発生します。この問題の奇妙な点は、電話が Wi-Fi または 3g に接続されている場合、サーバーへの接続が完全に機能することです。問題があるのは 4g だけです。この問題は、サーバーの TTL (Time to Live) が 0 秒に設定されていることが原因であると考えています。残念ながら、TTL の変更はオプションではなく、回避策が必要です。

テストとして、ホスト名の IP アドレスをハードコーディングし、それを使用して接続を試みたところ、問題なく動作しました。現在、サーバーは DNS レベルのラウンド ロビン ロード バランサーを使用しているため、IP アドレスをハード コーディングすることは現実的な解決策ではありません。InitAddress を使用して、プログラムで IP アドレスを取得しようとしました。

InetAddress inet = InetAddress.getByName(url.getHost());
String ipAddress = inet.getHostAddress();

残念ながら、この回避策でも不明なホスト例外が返されます。

また、次を使用して Java の内部 DNS キャッシュを変更しようとしました。

     System.setProperty("networkaddress.cache.ttl" , "100"); 

しかし、これもうまくいきませんでした。

他の提案や解決策は大歓迎です!

ありがとうございました。

4

1 に答える 1

1

デフォルトで電話セットプロキシのISPが設定されているため、3gに問題がありました(他のすべてと別のISPで正常に機能しました)。デバイスの接続設定を確認し、設定されている場合は削除してください。お役に立てば幸いです。

于 2014-08-07T16:33:33.603 に答える