我构建了一个调用Web服务的应用程序,以便检索一些信息。此应用程序旨在同时在Android和Windows上运行(使用firemonkey框架(。 调用 Web 服务的对象是使用 WSDL 导入程序构建的,在 Windows 上运行应用程序时效果很好。
尽管如此,当我尝试在安卓设备上使用我的应用程序时,我只能调用网络服务两次。第三次,应用程序冻结。
我尝试进行一些调试,但似乎应用程序在尝试调用Web服务时冻结:
genEtq := GetIGenerationEtiquettes(); // Converts a THttpRio as a IGenerationEtiquette object
soapattachmnt := genEtq.GetImageEtiquette(idEtiquette); // Calls web service -> freeze on third time
//
// Do something ...
//
网络服务托管在我的计算机上,因此我确定服务方面没有麻烦。此外,当我重新启动应用程序时,我仍然可以调用 Web 服务两次。
我的应用程序有权在我的安卓设备上访问互联网,所以我对问题是什么一无所知。 此外,我尝试监视网络(通过wireshark(,并且我已经能够看到前两个请求,但看不到第三个请求。
您对如何找到问题有任何想法吗?
最后我找到了答案,我的错误是每次调用 GetIGenerationEtiquettes(( 函数而不是存储结果对象。
现在,我可以根据需要随时调用我的 Web 服务。
希望这个答案能帮助某人。