【问题标题】:How to consume nusoap webservice from Flash如何从 Flash 使用 nusoap webservice
【发布时间】:2020-07-08 17:19:19
【问题描述】:
我正在尝试从 AS3 Flash 应用程序调用用 nuSoap 编写的 Web 服务。我读过,从 AS3 开始,Web 服务支持已在 Flash 中删除(真的不明白为什么)。我已经尝试过第三方解决方案(be.wellconsidered,Carlo Alducente),但它们不适用于 nusoap 生成的 WSDL。
我真的很担心,我必须使用 Flash 而不是 Flex,谁能帮助我?
提前致谢。
【问题讨论】:
标签:
flash
actionscript-3
web-services
【解决方案1】:
它不是轻量级的(它会为您的 swf 添加 130 Kb 之类的东西),但您可以在 Actionscript 项目中使用 Flex 的 Webservice api,除了手动添加必要的 swc 之外,不需要任何黑魔法。
我自己做过,没有遇到任何问题。我添加了 flex.swc、framework.swc、rpc.swc 和 utility.swc(加上 locale 文件夹中的所有 swc)。我并没有投入太多,真的,只是添加了我在 SDK 中找到的所有 swc,直到它编译为止。由于编译器只会添加引用的类,所以应该不会有太大的区别,而且快速简单。
我正在粘贴一些代码,也许有帮助(我发现的大多数示例都使用 mxlm):
private function setupWebService():void {
_ws = new WebService();
_ws.addEventListener(LoadEvent.LOAD,handleWsdlLoad);
_ws.getFeeds.addEventListener(InvokeEvent.INVOKE,handleGetFeedsInvoke);
_ws.getFeeds.addEventListener(ResultEvent.RESULT,handleGetFeedsResult);
_ws.getFeeds.addEventListener(FaultEvent.FAULT,handleGetFeedsFault);
_ws.loadWSDL(_wsdlUrl);
}
// at some point, call this method; not sure if you have to wait until wsdl is loaded
// I think it's not necessary; if I recall correctly, all calls are enqueued
private function testGetFeeds():void {
_ws.getFeeds("some_param");
}
希望对你有帮助。
附言。这是我在代码中所指的 WebService 类:
import mx.rpc.soap.WebService;