UPNP.UPnP.SOAPRequest C# (CSharp) Method

SOAPRequest() private method

private SOAPRequest ( string serviceURL, string soapRequest, string action ) : XmlDocument
serviceURL string
soapRequest string
action string
return System.Xml.XmlDocument
        private XmlDocument SOAPRequest(string serviceURL, string soapRequest, string action)
        {
            // Request zusammenbauen
            string requestString = "<?xml version=\"1.0\"?>" +
            "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\" s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" +
            "<s:Body>" +
            soapRequest +
            "</s:Body>" +
            "</s:Envelope>";

            byte[] request = Encoding.UTF8.GetBytes(requestString);

            try
            {
                // Request abschicken
                WebRequest webRequest = HttpWebRequest.Create(serviceURL);
                webRequest.Method = "POST";
                webRequest.Headers.Add("SOAPACTION", "\"urn:schemas-upnp-org:service:WANIPConnection:1#" + action + "\"");
                webRequest.ContentType = "text/xml; charset=\"utf-8\"";
                webRequest.ContentLength = request.Length;
                webRequest.GetRequestStream().Write(request, 0, request.Length);

                // Response empfangen
                XmlDocument xmlResponse = new XmlDocument();
                WebResponse webResponse = webRequest.GetResponse();
                Stream responseStream = webResponse.GetResponseStream();
                xmlResponse.Load(responseStream);

                // und zurückgeben
                return xmlResponse;
            }
            catch (Exception e)
            {
                throw e;
            }
        }