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

Kri*_*tof 5 c# rest wcf web-services

这是我的问题:

我必须构建一个web服务,接受httppost正文中的纯文本.
我想使用wcf,但看起来wcf只针对xml/json.

有没有人有一个方法可以用来通过http帖子发布纯文本?
请注意,我不能使用soap或将文本包装在xml标签内,我必须遵循某些指导方针才能与现有服务使用者兼容.

提前致谢.

Rob*_*Rob 0

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

在 i 合同中

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

Stream InterpretORUTest(Stream ORU);
Run Code Online (Sandbox Code Playgroud)

在您的 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 "";

            }

        }
Run Code Online (Sandbox Code Playgroud)