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
Question Delphi formunu nasıl otomatik tam ekran yapabilirim ? erdemklt0 2 324 23-01-2026, Saat: 10:02
Son Yorum: csunguray
  TMS Web Core- REST İşlemlerini Nasıl Yapabilirim? kajmerantime 0 429 13-06-2025, Saat: 14:07
Son Yorum: kajmerantime
  Projeye dosya olarak eklenmiş dosyanın içeriğini okumak yhackup 9 1.753 18-04-2025, Saat: 21:39
Son Yorum: bakyuz
  Windows Explorer dan delphi formuna dosya Drag&Drop işlemi örneği adelphiforumz 1 572 23-01-2025, Saat: 15:16
Son Yorum: yhackup
  Delphi 7 deki pencereleri nasıl sabitleyebilirim? mxpain 1 554 12-12-2024, Saat: 08:50
Son Yorum: 3ddark



Konuyu Okuyanlar: 1 Ziyaretçi