2012-02-29 46 views
2

我正在嘗試開發一個調用RESTful Web服務的客戶端應用程序。作爲RESTful設計的一部分,該服務使用各種HTTP狀態代碼將狀態傳回給調用者。例如,如果我請求一個不存在的資源,服務將以404狀態碼進行響應。同樣,如果我傳入格式不正確的參數,服務會響應400(錯誤請求)狀態碼。 Silverlight 5自動將它們轉換爲WebExceptions。無論如何,我可以讓SL不會拋出異常,而是返回帶有狀態碼的合法響應對象,並將其設置爲接收到的內容,以便我可以決定如何處理代碼中的響應。停止Silverlight 5針對非200狀態代碼拋出WebExceptions?

(爲了進一步澄清,看來這是僅適用於在400米500範圍內的狀態碼的情況。)

回答

0

AFAIK,沒有解決,以避免異常。更糟糕的是,實際的HTTP代碼可能很難甚至不可能(我不確定,我沒有太努力)。

您可能需要開發一個HTTP請求工具,該工具會陷阱WebException並向調用者提供錯誤狀態。

+1

幸運的是,WebException暴露了接收到的HttpWebResponse對象,這給我們提供了StatusCode,StatusReason等。我目前正在做你所描述的(捕獲異常並將其轉換回響應)。如果有一種方法可以消除SL將開銷轉換爲異常,拋出它並處理它只是爲了將其轉換回原來的響應,所以我可以決定如何對狀態做出反應。 – SonOfPirate 2012-03-08 01:30:27

+0

感謝您的詳細信息,這很好理解(正如我之前所說,我沒有太多搜索)。 – jv42 2012-03-08 09:06:17

相關問題