2011-10-25 89 views
0

我正在使用Flash Builder 4.5和Flex 4.5語言。 我正在使用web服務來檢索json中調用.php的數據。Flex Webservice

<webservice:Webservice id="webservice" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/> 
<s:CallResponder id="testResult" result="onTestResult(event)"/> 

... 

private function onTestResult(e:ResultEvent):void{ 
    Alert.show(ObjectUtil.toString(testResult.lastResult)); 
} 

在Flash Builder的「測試操作」窗口中,我進行了我的調用,返回值是由數組生成的json對象。

如果我從代碼調用相同的webservice,它會返回一個(對象)#0,所以這是一個空的對象。沒有錯誤,只是一個空的對象。

任何人有一些提示?

+0

它是否正在訪問Web服務?是否有任何服務器日誌更新? – kbgn

回答

0

Webservice類的ns前綴懷疑您使用的是自定義實現,而不是框架WebService類。但是,您不提供任何細節,所以我會在黑暗中擺動:

如果您的自定義服務基於HTTPService課程,請確保設置爲resultFormat='text'。默認值爲XML,這會導致您遇到問題。

如果您使用的是Framework WebService類,那麼您不能,因爲它是爲SOAP Web服務設計的,而不是JSON。 (從文檔的mx.rpc.soap.WebService :)

WebService類提供對基於SOAP的Web服務上 遠程服務器。

如果是其他一些實現,請提供更多詳細信息。

+0

問題出在resultFormat上。我已經設置了一個通用的Object(),但flex似乎不喜歡轉換myResult - > Object,所以我創建了一個自定義myObjectType(),其中的字段完全被命名爲返回的JSON序列化數組,並且數據被正確插入。 – Riccardo