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;
}
}