我有一个.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