【发布时间】:2013-03-22 14:16:27
【问题描述】:
我正在从我的 Android 应用程序调用网络服务。我在整个应用程序中对该服务进行了许多不同的调用,并且每个调用都在不到一秒的时间内返回数据,除了一个。即使实际的 Web 服务调用几乎是即时的,我的一个调用也可能需要一分钟才能返回数据。该行出现问题:
transport.call(SOAP_ACTION, soapEnvelope);
这被调用并且值几乎立即从 Web 服务返回。但可能需要一分钟才能到达下一行:
SoapObject result = (SoapObject) soapEnvelope.bodyIn;
在 Web 服务返回数据和应用进入下一行(上图)之间发生了什么?有没有办法减少这种延迟?有什么简单的检查吗?
【问题讨论】:
-
你确定结果这么快吗?服务器可能由于某种原因保持连接打开
-
是的,当我在网络浏览器中转到网络服务位置时,它会立即返回结果。而在远程调试Web服务时,延迟是从函数返回字符串到
SoapObject result = (SoapObject) soapEnvelope.bodyIn;行,因此Web服务没有延迟。对 Web 服务的所有其他调用对请求使用完全相同的代码,只需更改几个变量就可以了。
标签: java android web-services ksoap2