Web services Flex4中的Web服务类
我试图从Web服务接收数据,并从Web服务获取数据,但它是Web services Flex4中的Web服务类,web-services,actionscript-3,flex4,Web Services,Actionscript 3,Flex4,我试图从Web服务接收数据,并从Web服务获取数据,但它是[object object]的形式。有人能帮我吗 下面是我的web服务的代码: public class WebServiceAccess { private var webService:WebService; private var serviceOperation:AbstractOperation; private var myValueObjects:ValueObjects; priva
[object object]
的形式。有人能帮我吗
下面是我的web服务的代码:
public class WebServiceAccess
{
private var webService:WebService;
private var serviceOperation:AbstractOperation;
private var myValueObjects:ValueObjects;
private var method:String;
[Bindable]
public var employeeData:ArrayCollection;
[Bindable]
public var employees:ArrayCollection;
public function WebServiceAccess(url:String, method:String)
{
webService = new WebService();
this.method = method;
webService.loadWSDL(url);
webService.addEventListener(LoadEvent.LOAD, ServiceRequest);
}
public function ServiceRequest():void
{
serviceOperation = webService.getOperation(method);
serviceOperation.addEventListener(FaultEvent.FAULT, DisplayError);
serviceOperation.addEventListener(ResultEvent.RESULT, DisplayResult);
serviceOperation.send();
}
public function DisplayError(evt:FaultEvent):void
{
Alert.show(evt.fault.toString());
}
public function DisplayResult(evt:ResultEvent):void
{
employeeData = evt.result as ArrayCollection;
Alert.show(employeeData.toString());
}
}
首先,evt.result不是ArrayCollection,它是一个对象(除非您的SOAP服务/WSDL完全是错误的XML) 其次,您不能仅将数组或ArrayCollection(或泛型对象,甚至)显示为字符串(尽管.toString()方法似乎总是暗示这一点),无论如何,您必须解析数据以从中获得所需的内容 现在,WebService类很好,因为它自动将SOAP服务返回的XML文件解析为单个可用对象。这实际上是最难的部分 您需要做的是调用对象的各种属性来获取所需的数据 因此,如果XML返回(查看您的WSDL以了解返回应该是什么,我也强烈建议使用soapUI)是这样的: 它确实变得更复杂了。如果WSDL允许在同一级别使用相同名称的多个节点,它将返回ArrayCollection。然后你必须在数组中循环,找到你需要的确切项目
只要记住:WSDL就是上帝。时期如果它说可以有多个“employee”节点,那么即使在测试中没有看到多个节点,也必须相应地编写代码。问题是总是可能有多个节点。首先,evt.result不是ArrayCollection,它是一个对象(除非您的SOAP服务/WSDL完全错误/格式不正确的XML) 其次,您不能仅将数组或ArrayCollection(或泛型对象,甚至)显示为字符串(尽管.toString()方法似乎总是暗示这一点),无论如何,您必须解析数据以从中获得所需的内容 现在,WebService类很好,因为它自动将SOAP服务返回的XML文件解析为单个可用对象。这实际上是最难的部分 您需要做的是调用对象的各种属性来获取所需的数据 因此,如果XML返回(查看您的WSDL以了解返回应该是什么,我也强烈建议使用soapUI)是这样的: 它确实变得更复杂了。如果WSDL允许在同一级别使用相同名称的多个节点,它将返回ArrayCollection。然后你必须在数组中循环,找到你需要的确切项目
只要记住:WSDL就是上帝。时期如果它说可以有多个“employee”节点,那么即使在测试中没有看到多个节点,也必须相应地编写代码。问题是总是可能有多个节点。什么后端技术为WS提供服务?@Neil看起来询问者在使用SOAP。什么后端技术为WS提供服务?@Neil看起来询问者在使用SOAP。
<employee name="Josh">
<start date="89384938984"/>
<photo url="photo.jpg"/>
</employee>
var name:String = e.result.employee.name;
var url:String = e.result.employee.photo.url;