Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Yandex Disk üzerinden TIdWebDAV ile nasıl dosya alabilirim
#1
Merhabalar 

Yandex Disk üzerinde bulunan bazı dosyaları download ve upload etmem gerekiyor
Şimdilik download için basit bur uygulama yazmaya çalıştım fakat sürekli 401 hatası alıyorum

Acaba aşağıdaki kod ile bu işlem yapılamazmı

Teşekkürler

procedure TForm1.Button1Click(Sender: TObject);
var
 q: TStringStream;
 r: TMemoryStream;
 s: TStream;
begin
 q := TStringStream.Create(
   '<propertyupdate xmlns="DAV:">' + sLineBreak +
   '<set>' + sLineBreak +
   '<prop>' + sLineBreak +
   '<public_url xmlns="urn:yandex:disk:meta">true</public_url>' + sLineBreak +
   '</prop>' + sLineBreak +
   '</set>' + sLineBreak +
   '</propertyupdate>'
 );

 try
   r := TMemoryStream.Create;
   s := TStream.Create;
   try
     Memo1.Lines.Clear;
     IdWebDAV1.Request.Username := txUser.Text;
     IdWebDAV1.Request.Password := txPassword.Text;
     IdWebDAV1.Request.UserAgent := 'my_application/0.0.1';
     IdWebDAV1.Request.ContentType := 'text/xml';
     IdWebDAV1.Request.Charset := 'utf-8';
     IdWebDAV1.Request.CustomHeaders.Values['Authorization'] := 'OAuth c953e33d6ec14895aa776f55145e73b5';
     IdWebDAV1.Request.BasicAuthentication := True;
     IdWebDAV1.DAVPropPatch('https://webdav.yandex.com.tr/Test.jpg', q, r);
     r.Position := 0;
     Memo1.Lines.Text := ReadStringAsCharset(r, IdWebDAV1.Response.Charset);
     r.Position := 0;
     r.SaveToFile('C:\Sil\Test.jpg');
   finally
     r.Free;
   end;
 finally
   q.Free;
 end;
end;
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#2
Yandex Disk REST API
Begin : = end / 2;
Cevapla
#3
(17-03-2023, Saat: 16:29)RAD Coder Adlı Kullanıcıdan Alıntı: Yandex Disk REST API

RestApi kısına girmeden delphi içindeki TIdWebDAV ile çözümü için uğraşmıştım. Az önce çözüldü teşekkürler

Küçük bir değişklik ile aşağıdaki şekilde çözüldü 


procedure TForm1.Button1Click(Sender: TObject);
var
 q: TStringStream;
 r: TMemoryStream;
begin
 q := TStringStream.Create(
   '<propertyupdate xmlns="DAV:">' + sLineBreak +
   '<set>' + sLineBreak +
   '<prop>' + sLineBreak +
   '<public_url xmlns="urn:yandex:disk:meta">true</public_url>' + sLineBreak +
   '</prop>' + sLineBreak +
   '</set>' + sLineBreak +
   '</propertyupdate>'
 );

 try
   r := TMemoryStream.Create;
   try
     Memo1.Lines.Clear;
     IdWebDAV1.Request.Charset := 'utf-8';
//      IdWebDAV1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
     IdWebDAV1.Request.Username := txUser.Text;
     IdWebDAV1.Request.Password := txPassword.Text;
     IdWebDAV1.Request.UserAgent := 'my_application/0.0.1';
     IdWebDAV1.Request.ContentType := 'text/xml';
     IdWebDAV1.Request.Charset := 'utf-8';
//      IdWebDAV1.Request.CustomHeaders.Values['Authorization'] := 'OAuth c953e33d6ec14895aa776f55145e73b5';
     IdWebDAV1.Request.BasicAuthentication := True;
     IdWebDAV1.Get(txLink.Text, r);

     r.Position := 0;
     r.SaveToFile('C:\Sil\Test1.jpg');
   finally
     r.Free;
   end;
 finally
   q.Free;
 end;
end;
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Lightbulb Delphi 7zip Password lü Dosya Sıkıştırma ve Açma + Bonus RAR5 Desteği frmman 6 423 16-03-2024, Saat: 17:55
Son Yorum: delphi.developer
  Dosya isimlendirme bydelphi 6 612 16-01-2024, Saat: 16:38
Son Yorum: mustafaozpinar
  Uygulamaya responsive görünüm nasıl kazandırabilriz ? delphicim 0 245 04-01-2024, Saat: 15:24
Son Yorum: delphicim
  Delphi 7 ye göre MB Döviz kurları nasıl alırız maydin60 7 1.182 31-12-2023, Saat: 02:18
Son Yorum: maydin60
Exclamation dosya özellikleri değiştirme erdogan 1 354 09-10-2023, Saat: 16:09
Son Yorum: hi_selamlar



Konuyu Okuyanlar: 1 Ziyaretçi