首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在客户端中检索WCF Rest响应

在客户端中检索WCF Rest响应
EN

Stack Overflow用户
提问于 2011-11-10 04:21:12
回答 2查看 437关注 0票数 2

我正在使用WebChannelFactory<>创建一个通道并与WCF REST Service进行交互。

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

下面是我的代码:

代码语言:javascript
复制
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());
        }
    }
}

在catch语句中,我希望包含来自响应体的数据...

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

EN

回答 2

Stack Overflow用户

发布于 2011-11-10 07:11:09

我相信它会抛出一个WebException

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

票数 0
EN

Stack Overflow用户

发布于 2011-11-15 17:51:33

您使用ChannelFactory与REST服务交互有什么特别的原因吗?我认为使用HttpWebRequest对象来调用REST服务会更容易,并且当服务器抛出错误时,您可以在那里获得响应流。

还可以查看RestSharp应用程序接口,通过它可以完成读取响应流的任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8071086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档