【问题标题】:WCF 4 REST - Acquiring the underlying response stream object for writingWCF 4 REST - 获取底层响应流对象以进行写入
【发布时间】:2012-03-09 06:52:26
【问题描述】:

背景:我目前正在使用 Visual Studio 2010 在线模板“WCF REST 服务模板 40(CS)”,它非常适合我主要基于 JSON 的服务。我什至可以在返回图像时返回流。

场景:我目前正在研究服务器推送和 multipart/x-mixed-replace 技术来替换我目前使用的图像轮询方法。

问题:我面临的问题是我无法找到一种方法来获取 REST 请求的底层响应流,我知道模板试图通过抽象来提供帮助远离我,但为了正确实现 multipart/x-mixed-replace 机制,我需要直接写入此流并完全控制我向客户端写入的内容。

任何帮助将不胜感激。服务器推送技术看起来很酷!

【问题讨论】:

    标签: .net wcf rest c#-4.0


    【解决方案1】:

    我在响应中返回了各种各样的东西,包括文档、电子表格等。它看起来像这样:

    [ServiceContract]
    public class MyService
    {
        [OperationContract]
        [WebGet(UriTemplate="{id}")]
        public Stream GetDocuments(int id)
        {
           WebOperationContext.Current.OutgoingResponse.ContentType = GetContentType();
           Stream result = CreateTemporaryStream();
           /* Write your data in the correct format */
           return result; 
        }  
    }
    

    您几乎可以返回任何您想要的格式。客户端显然必须能够解析流并从响应中提取各个流。

    【讨论】:

    • 感谢 Werner 的洞察力,这实际上也是我用来返回图像的方法。虽然我真正要问的是如何写入响应流而不必首先从函数返回来发送响应,这是实现 multipart/x-mixed-replace 消息所需要的。谢谢!
    • 我误解了“multipart/x-mixed-replace”的使用方式。您最好编写一个 HttpModule 来处理这些类型的请求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 2010-11-27
    相关资源
    最近更新 更多