gpt4 book ai didi

c# - 当服务使用 WCF 返回 500 错误时捕获响应

转载 作者:行者123 更新时间:2023-11-30 22:37:49 25 4
gpt4 key购买 nike

我正在使用 REST(使用 WebHttpBindingWebHttpBehavior)从第 3 方 Web 服务获取数据。当我在查询字符串中传递一个无效参数时,服务以 500 状态响应并描述问题。响应看起来像这样:

HTTP/1.1 500 Internal Server Error
Date: Tue, 14 Jun 2011 16:12:48 GMT
... more headers

<Error>Invalid integer value for ID</Error>

我真的很想能够捕获该错误消息。我的 WCF 客户端如下所示:

public class DataClient : ClientBase<IDataClient>, IDataClient
{
public DataClient (string endpointAddress)
: base(new WebHttpBinding(), new EndpointAddress(endpointAddress))
{
this.Endpoint.Behaviors.Add(new WebHttpBehavior());
}

public string GetData(string id)
{
// This is where the exception is thrown
return base.Channel.GetData(id);
}
}

当我捕捉到抛出的异常时,该数据无处可寻。它只是说,“System.ServiceModel.CommunicationException:内部服务器错误”。

我尝试创建一个自定义行为并添加了一个消息检查器,但是我的自定义消息检查器代码在抛出异常之前没有被执行(如果没有抛出异常它确实被执行了)。

最佳答案

我终于明白了。创建自定义行为并添加消息检查器是我需要的方式。我只需要在 WebHttpBehavior 之前添加我的自定义行为。然后我可以查看整个响应并抛出我自己的异常以及其中的所有数据!

关于c# - 当服务使用 WCF 返回 500 错误时捕获响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6346965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com