Как я могу опубликовать простой текст в сервис WCF, т.е. не обернутый в тег XML? - PullRequest
5 голосов
/ 06 января 2011

Вот моя проблема:

Мне нужно создать веб-сервис, который принимает простой текст в теле httppost.
Я хочу использовать wcf, но похоже, что wcf предназначен только для xml / json.

У кого-нибудь есть метод, который я могу использовать для публикации простого текста через сообщение http?
Обратите внимание, что я не могу использовать мыло или оборачивать текст внутри тегов xml, я должен следовать определенным рекомендациям, чтобы быть совместимым с существующими потребителями услуг.

Заранее спасибо.

1 Ответ

0 голосов
/ 14 июня 2017

Хитрость в том, что вы вызываете свой метод с помощью параметра 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 "";

            }

        }
...