昨天在网上看到一个例子,是用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;
}
红色声明的函数必须要写