Danke, doch wie ist das mit USERNAME und PAssword. Muss diese auch in die request eingebaut werden? wie?
Ich hab das so gemacht wie oben erwähnt, doch bekomme ich bei dem POST: 501 Not implemented yet.
Liegt das am SERVER?
Danke.
Versuchst du dir
URI "login"
Delphi-Quellcode:
webdav.post('https://www.meinzielserver.de/login', Request, Response);
s := webdav.Get('https://www.meinzielserver.de/katzen/katzen.xml');
aufzurufen?
Das wäre falsch.
Ich mach nochmal ein komplettes Codebeispiel:
Delphi-Quellcode:
// WebDAV Komponente erzeugen
WebDAVClient := TIdWebDAV.Create;
WebDAVClient.Intercept := LogEvent;
// SSL handler zuweisen
WebDAVClient.IOHandler := OpenSSL;
WebDAVClient.Request.BasicAuthentication := True;
WebDAVClient.AllowCookies := True;
WebDAVClient.HandleRedirects := True;
// Request konfigurieren
WebDAVClient.Request.AcceptCharSet := '
utf-8';
WebDAVClient.Request.CacheControl := '
no-cache';
WebDAVClient.Request.Connection := '
Keep-Alive';
WebDAVClient.Request.ContentEncoding := '
utf-8';
// Login-Daten bei jedem Request mitgeben
WebDAVClient.Request.Username := '
user';
WebDAVClient.Request.Password := '
SUPERGEHEIM';
// Nun mit dem Server kommunizieren, dabei die WebDAV-URI setzen
// Diese muss immer aktuell zusammengesetzt werden, ich habe dafür ein Unterroutine, welche das in Abhängigkeit des aktuellen Verzeichnisses macht (BuildURI) - darin steckt Protokoll + Server + Resource
// Download
WebDAVClient.Get(BuildURL('
katzen/katzen.xml'), Dest);
// Protokoll + Server + Verzeichnis + Quelldatei, Dest ist ein Stream
// Upload
WebDAVClient.Put(BuildURL('
katzen/katzen.xml'), Source);
// Protokoll + Server + Verzeichnis + Zieldatei, Source ist ein Stream
// Verzeichnis erstellen
WebDAVClient.DAVMakeCollection(BuildURL('
ein Verzeichnis'));
Also du musst dich nicht explizit an einer Login-Adresse autehtifzieren, sondern jedes mal im Request deine Login-Daten mitgeben. Deswegen ist es bei WebDAV unbedingt zu empfehlen die Daten über eine TLS/SSL Verschlüsselung zu transportieren, sonst hast du em Ende ein
FTP, wobei die Daten im Klartext übers Web geschoben werden
.
Hoffe das hilft dir weiter
Wer sucht, der findet. Wer länger sucht, findet mehr.