如何将纯文本发布到 WCF 服务,即不包含在 XML 标记中?

Posted

技术标签:

【中文标题】如何将纯文本发布到 WCF 服务,即不包含在 XML 标记中?【英文标题】:How can I post plain text to a WCF service i.e. not wrapped in an XML tag? 【发布时间】:2011-06-04 15:39:34 【问题描述】:

这是我的问题: 我必须构建一个接受 httppost 正文中纯文本的网络服务。 我想使用 wcf,但看起来 wcf 仅适用于 xml/json。

有没有人可以通过http post发布纯文本的方法? 请注意,我不能使用 soap 或将文本包装在 xml 标签内,我必须遵循某些准则才能与现有的服务消费者兼容。

提前致谢。

【问题讨论】:

现有服务是如何实现的? 【参考方案1】:

诀窍是你用参数 Stream xxx 调用你的方法

在 iContract 中

[WebInvoke(Method = "POST",
    UriTemplate = "InterpSvcTest",
    BodyStyle = WebMessageBodyStyle.Bare)] // this is key for combining params with Stream

Stream InterpretORUTest(Stream ORU);

在您的 WebService 类中

    public Stream InterpretORUTest(Stream ORUMessageStream)
    
        string hl7 = StreamToString(ORUMessageStream);

        return StringToStream(hl7);

    

   public Stream StringToStream(string s)
        
            return new MemoryStream(Encoding.UTF8.GetBytes(s));

        

        public string StreamToString(Stream ms)
        
            try
            
                using (ms)
                
                    var sr = new StreamReader(ms);
                    var myStr = sr.ReadToEnd();
                    sr.Dispose();
                    return myStr;
                ;
            
            catch (Exception e)
            
                c.WriteToLog("StreamToString error - " + e.Message);
                return "";

            

        

【讨论】:

以上是关于如何将纯文本发布到 WCF 服务,即不包含在 XML 标记中?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 android 应用程序将纯文本共享到 facebook messenger

将纯文本呈现为 HTML 维护空白 - 没有 <pre>

Spring Cloud Config Server 如何将纯文本文件推送到 Config Client Application?

PHP将纯文本转换为标签链接

如何使用 NestJS 将纯文本作为我的请求正文传递?

Ajax 到 WCF 服务