Example #1
0
        public IncomingMessage SendRequest(OutgoingMessage requestMessage)
        {
            var httpRequest = (HttpWebRequest)WebRequest.Create(_serverUrl);

            httpRequest.Method    = "POST";
            httpRequest.MediaType = "application/soap+xml; charset=utf-8";
            requestMessage.AddHeader(new ToHeader(_serverUrl), true);
            if (requestMessage.GetHeader <MessageIdHeader>() == null)
            {
                requestMessage.AddHeader(MessageIdHeader.CreateRandom(), false);
            }
            SerializeRequestBody(httpRequest, requestMessage);
            var response = (HttpWebResponse)httpRequest.GetResponse();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                var responseStream = response.GetResponseStream();
                if (responseStream != null)
                {
                    return(new IncomingMessage(XmlReader.Create(responseStream)));
                }
                throw new SOAPException("Missing response body.");
            }
            var exceptionMessage = GetExceptionMessage(response.StatusCode);

            throw new SOAPException(exceptionMessage);
        }
Example #2
0
        public OutgoingMessage CreateMessage(string action)
        {
            var respose = new OutgoingMessage();

            respose.AddHeader(new ActionHeader(action), true);
            return(respose);
        }
        public IncomingMessage SendRequest(OutgoingMessage requestMessage)
        {
            requestMessage.AddHeader(new ToHeader("http://example.com"), true);
            var serverReceivedMessage = Receive(requestMessage);

            var serverResponse = Handle(serverReceivedMessage);

            var clientReceivedMessage = Receive(serverResponse);
            return clientReceivedMessage;
        }
        public IncomingMessage SendRequest(OutgoingMessage requestMessage)
        {
            requestMessage.AddHeader(new ToHeader("http://example.com"), true);
            var serverReceivedMessage = Receive(requestMessage);

            var serverResponse = Handle(serverReceivedMessage);

            var clientReceivedMessage = Receive(serverResponse);

            return(clientReceivedMessage);
        }
Example #5
0
 public static OutgoingMessage Create(string action, string reason, XmlQualifiedName code, IEnumerable<XmlQualifiedName> subcodes)
 {
     var message = new OutgoingMessage();
     message.AddHeader(new ActionHeader(action), false);
     var fault = new Fault
                     {
                         Code = CreateCode(code, subcodes),
                         Detail = new FaultDetail(),
                         Reason = CreateReason(reason)
                     };
     message.SetBody(new SerializerBodyWriter(fault));
     return message;
 }
Example #6
0
 public IncomingMessage SendRequest(OutgoingMessage requestMessage)
 {
     var httpRequest = (HttpWebRequest)WebRequest.Create(_serverUrl);
     httpRequest.Method = "POST";
     httpRequest.MediaType = "application/soap+xml; charset=utf-8";
     requestMessage.AddHeader(new ToHeader(_serverUrl), true);
     if (requestMessage.GetHeader<MessageIdHeader>() == null)
     {
         requestMessage.AddHeader(MessageIdHeader.CreateRandom(), false);
     }
     SerializeRequestBody(httpRequest, requestMessage);
     var response = (HttpWebResponse)httpRequest.GetResponse();
     if (response.StatusCode == HttpStatusCode.OK)
     {
         var responseStream = response.GetResponseStream();
         if (responseStream != null)
         {
             return new IncomingMessage(XmlReader.Create(responseStream));
         }
         throw new SOAPException("Missing response body.");
     }
     var exceptionMessage = GetExceptionMessage(response.StatusCode);
     throw new SOAPException(exceptionMessage);
 }
        public void It_writes_headers()
        {
            var message = new OutgoingMessage();

            var headerName = XName.Get("someHeader","someNamespace");
            var header = new MessageHeader(
                headerName, 
                new XNode[] {new XText("someText")}, 
                false);
            message.AddHeader(header);

            var envelope = XElementExtensions.ParseGeneratedXml(message.Write);

            Assert.AreEqual(SOAP.Constants.Envelope, envelope.Name);
            var headerSectionElement = envelope.Element(SOAP.Constants.Header);
            var headerElement = headerSectionElement.Element(headerName);
            var headerContent = (XText)headerElement.FirstNode;
            Assert.AreEqual("someText", headerContent.Value);
        }
Example #8
0
        public void It_writes_headers()
        {
            var message = new OutgoingMessage();

            var headerName = XName.Get("someHeader", "someNamespace");
            var header     = new MessageHeader(
                headerName,
                new XNode[] { new XText("someText") },
                false);

            message.AddHeader(header);

            var envelope = XElementExtensions.ParseGeneratedXml(message.Write);

            Assert.AreEqual(SOAP.Constants.Envelope, envelope.Name);
            var headerSectionElement = envelope.Element(SOAP.Constants.Header);
            var headerElement        = headerSectionElement.Element(headerName);
            var headerContent        = (XText)headerElement.FirstNode;

            Assert.AreEqual("someText", headerContent.Value);
        }
 public IMessageBuilder AddHeader(IMessageHeader header, bool mustUnderstand)
 {
     _outgoingMessage.AddHeader(header, mustUnderstand);
     return(this);
 }
 public void AddHeader(IMessageHeader header, bool mustUnderstand)
 {
     _outgoingMessage.AddHeader(header, mustUnderstand);
 }
 public OutgoingMessage CreateMessage(string action)
 {
     var respose = new OutgoingMessage();
     respose.AddHeader(new ActionHeader(action), true);
     return respose;
 }