我有一个 .Net WCF 客户端使用的 REST 服务。
当遇到错误时,REST 服务会返回一个 HTTP 400 错误请求,其响应正文包含 JSON 序列化详细信息。
如果我使用 Fiddler、Javascript 或直接从 C# 执行请求,我可以在发生错误时轻松访问响应正文。
但是,我使用的是 WCF ChannelFactory
有6个相当复杂的接口(interface)。这个代理抛出的异常总是 ProtocolException
,没有有用的细节。
当我收到此错误时,有什么方法可以获取响应正文?
更新
我意识到使用 .Net 有很多不同的方法可以做到这一点,并且还有其他方法可以获得错误响应。他们很有用,但不回答这个问题。
我们正在使用的 REST 服务会发生变化,并且当它们发生变化时,复杂的接口(interface)会得到更新。使用 ChannelFactory
使用新接口(interface)意味着我们将获得编译时(而不是运行时)异常,并使这些更容易维护和更新代码。
使用 WCF channel 时,有什么方法可以获取错误 HTTP 状态的响应正文?
最佳答案
您可以检索异常详细信息,如下所示:
Exception innerException = exception.InnerException;
WebException webException = innerException as WebException;
HttpWebResponse response = webException.Response as HttpWebResponse;
string statusDescription = response.StatusDescription;
HttpStatusCode statusCode = response.StatusCode;
关于.net - 从 WCF REST 获取错误详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2516914/