在客户端中检索WCF Rest响应

在客户端中检索WCF Rest响应,wcf,rest,Wcf,Rest,我正在使用WebChannelFactory创建一个频道并与WCF REST服务交互 当出现错误时,我希望从通道中检索响应,以从响应主体中读取错误消息。但我不知道如何获得响应流 这是我的密码: using (var cf = new WebChannelFactory<T>(new Uri(url))) { var channel = cf.CreateChannel(); using (new OperationContextScope(channel as IC

我正在使用WebChannelFactory创建一个频道并与WCF REST服务交互

当出现错误时,我希望从通道中检索响应,以从响应主体中读取错误消息。但我不知道如何获得响应流

这是我的密码:

using (var cf = new WebChannelFactory<T>(new Uri(url)))
{
    var channel = cf.CreateChannel();

    using (new OperationContextScope(channel as IContextChannel))
    {
        WebOperationContext.Current.OutgoingRequest.Headers
        .Add("x-st-authtoken", HttpUtility.UrlDecode(Constants.General_AuthorizedToken));

        WebOperationContext.Current.OutgoingRequest.Headers
        .Add("x-st-tesskey", HttpUtility.UrlDecode(Constants.General_SessionKey));
        try
        {
            a(channel);
        }
        catch (Exception ex)
        {
            throw new Exception("Status: " + ((int)WebOperationContext.Current.IncomingResponse.StatusCode).ToString());
        }
    }
}
使用(var cf=new WebChannelFactory(新Uri(url)))
{
var channel=cf.CreateChannel();
使用(新OperationContextScope(通道作为IContextChannel))
{
WebOperationContext.Current.OutgoingRequest.Header
.Add(“x-st-authtoken”,HttpUtility.UrlDecode(Constants.General_AuthorizedToken));
WebOperationContext.Current.OutgoingRequest.Header
.Add(“x-st-tesskey”,HttpUtility.UrlDecode(Constants.General_SessionKey));
尝试
{
a(渠道);
}
捕获(例外情况除外)
{
抛出新异常(“状态:”+((int)WebOperationContext.Current.IncomingResponse.StatusCode.ToString());
}
}
}
在catch语句中,我想包含来自响应体的数据

这似乎是一件显而易见的事情,但我似乎无法在互联网上或任何东西上找到任何信息。

我相信这会带来很大的影响

因此,如果您显式捕获该类型,您可以在异常上使用WebException.Response属性(它是一个HttpWebResponse),您可以从其流中获取内容。

我相信它会抛出一个错误


因此,如果您显式捕获该类型,您可以在异常上使用WebException.Response属性(它是一个HttpWebResponse),并且您可以从其流中获取内容。

您使用ChannelFactory与REST服务交互有何具体原因。我认为使用HttpWebRequest对象调用REST服务更容易,在服务器上抛出错误时,您可以在那里获得响应流


还可以查看RestSharp API,通过它您可以完成读取响应流的任务。

您使用ChannelFactory与REST服务交互有什么具体原因吗。我认为使用HttpWebRequest对象调用REST服务更容易,在服务器上抛出错误时,您可以在那里获得响应流

还可以查看RestSharp API,通过它您可以完成读取响应流的任务