Also ich habe WebDAV mit
Indy ohne Probleme am laufen. WebDAV ist ja nur ein Aufsatz auf das
Indy Http.
Bei mir klappts wie folgt:
Instanz erzeugen + SSL + Authentification + den Request konfigurieren:
Delphi-Quellcode:
WebDAVClient := TIdWebDAV.Create;
WebDAVClient.Intercept := LogEvent;
WebDAVClient.IOHandler := OpenSSL;
WebDAVClient.Request.BasicAuthentication := True;
WebDAVClient.AllowCookies := True;
WebDAVClient.HandleRedirects := True;
WebDAVClient.Request.AcceptCharSet := 'utf-8';
WebDAVClient.Request.CacheControl := 'no-cache';
WebDAVClient.Request.Connection := 'Keep-Alive';
WebDAVClient.Request.ContentEncoding := 'utf-8';
Anschließend ein Listing aus dem Root-Verzeichnis abfordern:
Delphi-Quellcode:
Response := TMemoryStream.Create;
try
try
WebDAVClient.DAVPropFind(
URL,
nil, Response, '
1', 1, 1);
except
on E: EIdHTTPProtocolException
do
raise ELoginCredentialError.Create(E.
Message);
end;
WebDAVXml.LoadFromStream(Response);
{$IFDEF DEBUG}
WebDAVXml.SaveToFile('
WebDAVResponse.xml');
{$ENDIF}
finally
Response.Free;
end;
WebDAVXml ist ein TXmlDocument für die Serverantwort vom WebDAV. Wir verwenden das Apache WebDAV-Modul, aber das sollte keine Rolle spielen.
Wer sucht, der findet. Wer länger sucht, findet mehr.