Hi,
ich versuche die Action Url meines Snom D 715 zu schreiben. Lesen klappt einwandfrei, aber wenn ich schreibe geht es seltsam schief. Ich bekomme die laut Wiki korrekte Antwort zurück, allerdings ersetzt das Telefon alle = durch : und alle & durch Zeilenumbrüche. da ich versuche eine URL der Form: http://[url]/?mac=$mac&local=$local&remote=$remote&call-id=$call-id&display_local=$display_local&display_remote=$display_remote zu schreiben, ist dies äußerst unpraktisch.
Ich schreibe meine Anwendung in c#. Dies ist mein Code um die Einstellung an das Telefon zu übertragen:
HttpClient client = new HttpClient(new HttpClientHandler { Credentials = new NetworkCredential(user, pw) });
string xml = $"<SOAP-ENV:Envelope\r\nxmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"\r\n" +
"xmlns:csta=\"http://www.ecma-international.org/standards/ecma-323/csta/ed4\">\r\n" +
$"<SOAP-ENV:Body>\r\n" +
$"<csta:SetSettings>\r\n" +
$" <csta:Setting>\r\n" +
$" <csta:name>\r\n" +
$" {key}\r\n" +
$" </csta:name>\r\n" +
$" <csta:value>\r\n" +
$" {value}\r\n" +
$" </csta:value>\r\n" +
$" </csta:Setting>" +
$" </csta:SetSettings>\r\n" +
$"</SOAP-ENV:Body>\r\n</SOAP-ENV:Envelope>";
var httpContent = new StringContent(xml, Encoding.UTF8, "text/xml");
try
{
var response = await client.PostAsync($"http://{adminuser}:{password}@{m.Ip}/csta", httpContent);
var responseXML = await response.Content.ReadAsStringAsync();
XmlDocument doc = new XmlDocument();
doc.LoadXml(responseXML);
XmlNodeList settingNodes = doc.GetElementsByTagName("csta:SetSettingsResponse"); //<- enthält die Antwort laut Wiki, aber keine Subnodes
}
catch (Exception ex){}
Ich habe schon versucht die = und & durch HTML-Ersetzungen oder %34 etc. zu ersetzen, aber das bringt leider nichts.
Ich wäre für Input sehr dankbar.
Viele Grüße
Florian