我有一個.Net WCF客戶端使用的REST服務。從WCF獲取錯誤詳細信息REST
當遇到錯誤時,REST服務會返回一個HTTP 400錯誤請求,其中包含JSON序列化詳細信息的響應正文。
如果我使用Fiddler,Javascript或直接從C#執行請求,當發生錯誤時,我可以輕鬆訪問響應主體。
但是,我使用了WCF ChannelFactory
以及6個相當複雜的接口。這個代理引發的異常總是一個ProtocolException
,沒有有用的細節。
當我得到這個錯誤時,有什麼辦法可以得到響應體嗎?
更新
我意識到有不同的方式來做到這一點使用的.Net的負載,並且還有其他的方法來獲得錯誤響應。他們對知道有用,但不回答這個問題。
我們正在使用的REST服務將會改變,當他們做時,複雜的接口會得到更新。將ChannelFactory
與新接口一起使用意味着我們將獲得編譯時(而不是運行時)異常,並使這些更容易維護和更新代碼。
當使用WCF通道時,有什麼辦法可以獲得響應主體的錯誤HTTP狀態嗎?
閱讀你的解釋,聽起來你不能控制REST服務本身,這是否正確? – 2010-04-05 14:08:23
其實在這種情況下我們可以,但很難改變。我們的問題是複雜性 - WCF ChannelFactory提供了一種非常好的方式來管理接口。令人討厭的是,當HTTP頭狀態爲200以外的任何其他東西時,它會拋出響應主體。當我們從REST服務中收到錯誤時,它會返回一個HTTP 400或500狀態,其中包含正文中的詳細信息。 – Keith 2010-04-05 22:08:15