2011-01-06 14 views
5

Aquí está mi problema:

Tengo que crear un servicio web que acepte texto sin formato en el cuerpo de la httppost.
Quiero usar wcf pero parece que wcf solo está hecho para xml/json.¿Cómo puedo enviar texto sin formato a un servicio WCF, es decir, no envuelto en una etiqueta XML?

¿Alguien tiene un método que pueda usar para enviar texto sin formato a través de una publicación http?
Tenga en cuenta que no puedo usar jabón ni ajustar el texto dentro de las etiquetas xml, tengo que seguir ciertas pautas para ser compatible con los consumidores de servicios existentes.

Gracias de antemano.

+0

cómo se implementa el servicio existente? – Lazarus

Respuesta

0

El truco es que llame a su método con el parámetro Corriente xxx

En el IContract

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

Stream InterpretORUTest(Stream ORU); 

En su clase 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 ""; 

      } 

     } 
Cuestiones relacionadas