2009-02-17 143 views
0

即時通訊使用Flex 3和WebService組件。我開始出現以下故障flex webservice錯誤:HTTP請求錯誤

HTTP request error 

打電話給服務方法。該錯誤只出現了,我找不出什麼導致它

<mx:WebService 
    useProxy="false" 
    id= "myService"> 
     <mx:operation name="getName" resultFormat="object" 
     result="getNameResultHandler(event)" 
     fault="faultHandler(event)"/> 
</mx:WebService> 

我設置的WSDL即時通訊,我讀的Flash變數我的init方法。有任何想法嗎?

我用來撥打電話的代碼如下;

var id:Strig = Application.application.parameters.id; 
mysERVICE.getname(id); 

確定即時看到以下時引發錯誤

[RPC Fault faultString="HTTP request error" faultCode="Server.Error.Request" faultDetail="Error: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: http://localhost:9081/app/services/RoomLookup"]. URL: http://localhost:9081/`app/services/RoomLookup`"] 

它顯示的URL是格蘭WSDLURL i電源作爲一個參數,其是

app/services/RoomLookup 

不同是flex附加本地主機或者這可能是存儲在緩存中的東西


我已經登錄這並獲得 「HTTP請求的錯誤」

回答

4

大多數SOAP和RPC框架將設置錯誤響應的HTTP狀態代碼爲500。 Flash Player無法處理狀態碼爲500的HTTP響應的內容,因此可能很難處理。不幸的是,在播放器中沒有辦法解決這個問題,因此最常見的方法似乎是確保服務器不會將錯誤響應的HTTP狀態設置爲500,其請求的用戶代理是Flash Player。

2

以下內容添加到faultHandler()

trace(event.fault.faultString, "Error"); 
if (event.fault is SOAPFault) { 
    var fault:SOAPFault=event.fault as SOAPFault; 
    var faultElement:XML=fault.element; 
    // ... 
}  

這會給你一些事情開始採摘。

+0

我已經登錄並獲取Http請求錯誤 – cduggan 2009-02-17 12:10:02

+0

嘗試通過瀏覽器/ libcurl訪問web服務。 – dirkgently 2009-02-17 12:30:46

1

使用http調試器,如Fiddler來找出確切的請求/響應是什麼。 Flex不公開肥皂錯誤的細節,或者至少它沒有用到。例如,請參閱here