私のアプリケーションでは、ksoap2 ライブラリを使用していくつかの Web サービス (WS) を呼び出していますが、ほとんどの場合、高速に動作します。ただし、WS の呼び出しが非常に遅い場合があります。
私はこのようなコードを持っています:
beforecall = System.currentTimeMillis();
androidHttpTransport1.call(NameSpaces.NAMESPACE+UserWSMethodName.GETUSERINFO,envelope1);
Log.d("soapdebug","call duration="+(System.currentTimeMillis()-beforecall));
通常は 1 ~ 2 秒 (最大) になりますが、11 秒になることもあります。呼び出しが遅すぎると、すべての WS で発生し、しばらくすると (たとえば、数時間) 正常に戻ります。そして速くなる...
Wireshark では、呼び出しごとに、call()
メソッドが呼び出されてからサーバーが [SYN] パケットで TCP 接続を確立するまでの経過時間が約 10 秒であることがわかります。使いましたが、なぜこれが時々起こるのかわかりません。
問題の原因は何ですか? それはデバイス構成でしょうか?