昨天在网上看到一个例子,是用Flex调Webservice发布的数据,自己也尝试着去弄了一下,可是按照网上的例子 来总是不成功,困扰了自己整整一天,今天一早才发现原来是webs返回的数据格式不一样,昨天一直把网上的例子当成XML文档来处理,其实它是字符串数组类型
Webservice
//返回字符串数组
? ? [WebMethod]
? ? public string[] getXmlDS(string str_ID)
? ? {
? ? ? ??
? ? ? ? myds = getDS(str_ID);
? ? ? ? string[] aryStr = new string[7];
? ? ? ? for (int i = 0; i < myds.Tables[0].Columns.Count-1; i++)
? ? ? ? {
? ? ? ? ? ? aryStr[i] = myds.Tables[0].Rows[0][i].ToString();
? ? ? ? }
? ? ? ? return aryStr;
? ? }
Fle端
声明
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
<s:WebService id="serverFlex"
?wsdl="http://10.9.34.98:8081/serverFlex/Service.asmx?wsdl"
?showBusyCursor="true" result="onLoad(event)"?
?fault="faultHandler(event)">
</s:WebService>
</fx:Declarations>
调用
private function getWebStr():void
{
? ? ? ? ? serverFlex.getXmlDS("1101022252000060");
}
private function onLoad(e:ResultEvent):void
{
? ?aryCol:ArrayCollection = e.result as ArrayCollection;
}
红色声明的函数必须要写