protected virtual async Task <XmlDocument> Send(string method, string etag, HttpAsyncRequestFilter filter, string contentType, XmlDocument doc, string encoding, string filename, bool ignoreResponse, XmlRequestResult result)
        {
            if (!String.IsNullOrEmpty(filename))
            {
                return(MultipartSend(method, etag, filter, contentType, doc, encoding, filename, ignoreResponse,
                                     result));
            }

            string absUri = UrlHelper.SafeToAbsoluteUri(result.uri);

            Debug.WriteLine("XML Request to " + absUri + ":\r\n" + doc.GetXml());

            SendFactory sf       = new SendFactory(etag, method, filter, contentType, doc, encoding);
            var         response = await RedirectHelper.GetResponse(absUri, new RedirectHelper.RequestFactory(sf.Create));

            try
            {
                result.responseHeaders = response.Headers;
                result.uri             = response.RequestMessage.RequestUri;
                if (ignoreResponse || response.StatusCode == Windows.Web.Http.HttpStatusCode.NoContent)
                {
                    return(null);
                }
                else
                {
                    XmlDocument xmlDocResponse = await ParseXmlResponse(response);

                    return(xmlDocResponse);
                }
            }
            finally
            {
                if (response != null)
                {
                    response.Dispose();
                }
            }
        }
예제 #2
0
        protected virtual XmlDocument Send(string method, ref Uri uri, string etag, HttpRequestFilter filter, string contentType, XmlDocument doc, string encoding, string filename, bool ignoreResponse, out WebHeaderCollection responseHeaders)
        {
            if (!String.IsNullOrEmpty(filename))
            {
                return(MultipartSend(method, ref uri, etag, filter, contentType, doc, encoding, filename, ignoreResponse,
                                     out responseHeaders));
            }

            string absUri = UrlHelper.SafeToAbsoluteUri(uri);

            Debug.WriteLine("XML Request to " + absUri + ":\r\n" + doc.InnerXml);

            SendFactory     sf       = new SendFactory(etag, method, filter, contentType, doc, encoding);
            HttpWebResponse response = RedirectHelper.GetResponse(absUri, new RedirectHelper.RequestFactory(sf.Create));

            try
            {
                responseHeaders = response.Headers;
                uri             = response.ResponseUri;
                if (ignoreResponse || response.StatusCode == HttpStatusCode.NoContent)
                {
                    return(null);
                }
                else
                {
                    XmlDocument xmlDocResponse = ParseXmlResponse(response);
                    return(xmlDocResponse);
                }
            }
            finally
            {
                if (response != null)
                {
                    response.Close();
                }
            }
        }
        protected virtual XmlDocument Send(string method, ref Uri uri, string etag, HttpRequestFilter filter, string contentType, XmlDocument doc, string encoding, string filename, bool ignoreResponse, out WebHeaderCollection responseHeaders)
        {
            if (!String.IsNullOrEmpty(filename))
            {
                return MultipartSend(method, ref uri, etag, filter, contentType, doc, encoding, filename, ignoreResponse,
                                     out responseHeaders);
            }

            string absUri = UrlHelper.SafeToAbsoluteUri(uri);
            Debug.WriteLine("XML Request to " + absUri + ":\r\n" + doc.InnerXml);

            SendFactory sf = new SendFactory(etag, method, filter, contentType, doc, encoding);
            HttpWebResponse response = RedirectHelper.GetResponse(absUri, new RedirectHelper.RequestFactory(sf.Create));
            try
            {
                responseHeaders = response.Headers;
                uri = response.ResponseUri;
                if (ignoreResponse || response.StatusCode == HttpStatusCode.NoContent)
                {
                    return null;
                }
                else
                {
                    XmlDocument xmlDocResponse = ParseXmlResponse(response);
                    return xmlDocResponse;
                }
            }
            finally
            {
                if (response != null)
                    response.Close();
            }
        }
예제 #4
0
 /// <summary>
 /// Send a <see cref="BrokerMessage"/>.
 /// </summary>
 /// <param name="message"></param>
 /// <returns></returns>
 public Either <Exception, Unit> Send(BrokerMessage message) =>
 SendFactory()(_logger, _connectionFactory, message);