Sehr geehrte Damen und Herren,
seit kurzem besitze ich eine Fritzbox 7320 mit der Firmware 100.04.88.
Aus Interesse wollte ich mit Delphi auf die Box zugreifen. Das Lesen von
XML-Dateien funktioniert. Dann habe ich mit TIdTcpClient (
Indy 10)
dieses Script versandt:
POST /upnp/control/WANIPConn1 HTTP/1.1
Host: fritz.box:49000
Accept: */*
Content-Type: text/
xml
SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetStatusInfo
Content-Length: 263
<?
xml version="1.0"?>
<s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/
soap/encoding/"
xmlns:s="http://schemas.xmlsoap.org/
soap/envelope/">
<s:Body>
<u:GetStatusInfo
xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" />
</s:Body>
</s:Envelope>
Beim zeilenweisen Abruf der Antwort trat bei den letzten beiden Zeilen
ein Fehler auf. Ursache dafür war, dass diese nicht - wie erwartet - mit
einem LineFeed (#10) abgeschlossen wurden.
HTTP/1.1 200 OK
DATE: Sun, 16 Jan 2011 13:28:00 GMT
SERVER: FRITZ!Box Fon WLAN 7320 UPnP/1.0 AVM FRITZ!Box Fon WLAN 7320
(UI) 100.04.88
CONNECTION: keep-alive
CONTENT-LENGTH: 430
CONTENT-TYPE: text/
xml; charset="utf-8"
EXT:
<?
xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/
soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/
soap/encoding/"><s:Body>
<u:GetStatusInfoResponse
xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">
<NewConnectionStatus>Connected</NewConnectionStatus>
<NewLastConnectionError>ERROR_NONE</NewLastConnectionError>
<NewUptime>41674</NewUptime>
</u:GetStatusInfoResponse>
Die Zeilen
</s:Body> </s:Envelope>
erhielt ich als eine erst nach einer Änderung in den
Indy bzw. wenn
sofort der gesamte Buffer gelesen wird. Wenn das gesendete Script einen
Fehler enthält, tritt kein Fehler bei der Antwort auf."
Nach Ansicht sollte sich zumindest am Ende des
XML ein Abschlusszeichen
(#10) befinden.
...
Mit freundlichen Grüßen
***** *****