首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HttpTransportSe.call()方法需要长达一分钟的web服务调用时间

HttpTransportSe.call()方法需要长达一分钟的web服务调用时间
EN

Stack Overflow用户
提问于 2013-03-22 22:16:27
回答 2查看 969关注 0票数 5

我正在从我的Android应用程序调用一个web服务。在整个应用程序中,我有许多对此服务的不同调用,除了一个之外,每个调用都在不到一秒的时间内返回数据。我的一次调用可能需要一分钟来返回数据,即使实际的web服务调用几乎是即时的。以下代码行出现问题:

代码语言:javascript
复制
transport.call(SOAP_ACTION, soapEnvelope);

它被调用,值几乎同时从web服务返回。但它可能需要一分钟才能到达下一行:

代码语言:javascript
复制
SoapObject result = (SoapObject) soapEnvelope.bodyIn;

在web服务返回数据和应用程序命中下一行(上面)之间发生了什么?有没有办法减少这种延迟?有什么简单的东西可以检查吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-27 21:50:16

事实证明,延迟只是在调试应用程序时。在没有附加调试器的情况下运行应用程序时,它几乎是即时返回的。

票数 1
EN

Stack Overflow用户

发布于 2013-03-25 18:40:07

有没有办法减少这种延迟?有什么简单的东西可以检查吗?

要知道这一点,唯一的方法是测量不同地区的时间差异。对于SOAP web服务调用,这是需要测量的时间。

客户端时间

客户端应用程序代码->请求处理程序->请求序列化->请求分派-> HTTP传输->服务器端

服务器端时间

接收HTTP请求->反序列化->应用程序代码->响应处理程序->序列化->调度-> HTTP传输

阻塞通常出现在应用程序代码、处理程序和网络中。测量一下这些数据,你就可以发现时间都花在哪里了。

  • 测量应用程序代码和处理程序使用探查器所用的CPU时间。我建议Jprofiler.
  • To测量网络时间,ping目标服务器,也可以使用像Charles这样的web调试代理。它可以告诉您请求在网络上花费的时间。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15572549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档