AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Anfrage an AVM wegen "TcpClient - Antwort XML unvollständig."
Thema durchsuchen
Ansicht
Themen-Optionen

Anfrage an AVM wegen "TcpClient - Antwort XML unvollständig."

Ein Thema von Garfield · begonnen am 21. Jan 2011 · letzter Beitrag vom 21. Jan 2011
Antwort Antwort
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#1

Anfrage an AVM wegen "TcpClient - Antwort XML unvollständig."

  Alt 21. Jan 2011, 17:49
Hallo,

wegen meines Problems in TcpClient - Antwort XML unvollständig. hatte ich eine Anfrage an AVM geschickt.

Zitat:
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

***** *****

Die Antwort sieht so aus:

Zitat:
Sehr geehrter Herr *****,

vielen Dank für Ihre Anfrage.
Nach Sichtung Ihrer Informationen könnten wir Ihnen mitteilen, dass die UPnP-Schnittstelle der FRITZ!Box RFC-konform implementiert ist und keine Änderung durch AVM erfolgen wird.

Die Kollegen haben noch einen ergänzenden Hinweis gegeben:
"Der Kunde geht davon aus, dass die UPnP Antwort zeilenweise geschickt wird (Zeileninhalt + Zeilenumbruch). Das ist eine falsche Annahme; er müsste das Header-Feld Content-Length auswerten (hier 430). Danach kann er prüfen ob der Inhalt, beginnend mit <?xml insgesamt die Länge von der angegebenen Content-Length erreicht."

Wir hoffen, dass sich Ihre Fragestellung damit geklärt hat und wünschen Ihnen für Ihr Projekt viel Erfolg.

Mit freundlichen Grüßen
******* *****
Produktmanagement

...

Wenn diese Aussage richtig wäre, wäre TIdTcpClient fehlerhaft...
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: Anfrage an AVM wegen "TcpClient - Antwort XML unvollständig."

  Alt 21. Jan 2011, 18:32
Also die Aussage von AVM ist richtig.
Das Feld CONTENT-LENGTH: im HTTP-Header ist maßgebend für die Länge der Nutzdaten.

Zitat:
Wenn diese Aussage richtig wäre, wäre TIdTcpClient fehlerhaft...
Meinst du wirklich TIdTcpClient?
Diese Komponente ist ja unabhängig von den übertragenen Daten.
Oder meinst du in Wirklichkeit TIdHttpClient?
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Anfrage an AVM wegen "TcpClient - Antwort XML unvollständig."

  Alt 21. Jan 2011, 19:33
TIdTcpClient ist richtig. TIdHTTP ging nicht.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz