Einzelnen Beitrag anzeigen

Benutzerbild von Garfield
Garfield

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

AW: TcpClient - Antwort XML unvollständig.

  Alt 16. Jan 2011, 01:24
Auf der Suche nach der Fehlermeldung fand ich diese Lösung: Die gesendete und empfangene Nachricht enden mit dem selben schließenden Tag. Deshalb funktioniert dies:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  TcpClient : TIdTcpClient;
begin
  Memo1.Clear;

  TcpClient := TIdTcpClient.Create(nil);
  TcpClient.Host := 'fritz.box';
  TcpClient.Port := 49000;
  try
    TcpClient.Connect;
    if TcpClient.Connected
    then begin
      if TcpClient.IOHandler.Connected
      then begin
        TcpClient.IOHandler.Write(Memo3.Text);

        Memo1.Text := TcpClient.IOHandler.WaitFor(Memo3.Lines.Strings[Memo3.Lines.Count - 1]);
        Memo1.Lines.Add(Memo3.Lines.Strings[Memo3.Lines.Count - 1]);
      end;
    end;
  finally
    TcpClient.Disconnect;
    TcpClient.Destroy;
  end;
end;
Code:
HTTP/1.1 200 OK
DATE: Sun, 16 Jan 2011 00:20:28 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>80745</NewUptime>
</u:GetStatusInfoResponse>
</s:Body>
</s:Envelope>
Das einzige, was etwas stört, sind die "falschen" Zeilenschaltungen im XML.

Anscheinend ist es ein Fehler in der verwendeten Indy-Version.
Angehängte Dateien
Dateityp: 7z Project.7z (195,2 KB, 9x aufgerufen)
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat