2017-08-10 1 views
-2

Hilfe mit TDownloadVL Hilfe Dieser Code speichert heruntergeladene Datei. Verwenden von Delphi XE2. möchte den Download in den Speicher/tstringlist nicht speichern. Wie macht man das, ohne eine Komponente hinzuzufügen? Vielen Dank!tdownload mit Delphi XE2

notfound:=false; 
dl := TDownloadURL.Create(self); 
    try 
    dl.URL := url; 
    dl.FileName := execpath+'apic1.csv'; dl.ExecuteTarget(nil); dl.Free; 
    except 
    dl.Free; 
    notfound:=true; 
    end; 
+0

Dieser Code ist ziemlich malerisch, die Art und Weise behandelt Ausnahmen und Lebensdauer. Wenn Sie diese Komponente nicht verwenden möchten, können Sie möglicherweise entscheiden, welchen Code Sie verwenden dürfen. Sobald Sie das wissen, warum schreiben Sie es nicht selbst? –

+1

Dann verwenden Sie nicht TDownloadURL. Es gibt viele geeignete Möglichkeiten, um Inhalte von einer URL ohne sie abzurufen. 'TIdHTTP' zum Beispiel ist seit mehr als einem Jahrzehnt Teil von Delphi. –

Antwort

7

Die TDownLoadURL von ExtActns Einheit tun kann nichts mehr als eine Datei herunterzuladen. Es ist ExecuteTarget Methode ist so implementiert. Wenn ich du wäre, würde ich Indy benutzen. Es ist einfach:

uses 
    IdHTTP; 

var 
    Client: TIdHTTP; 
    Stream: TStream; 
begin 
    Client := TIdHTTP.Create; 
    try 
    Stream := TMemoryStream.Create; 
    try 
     Client.Get(URL, Stream); 
     { ← process Stream somehow } 
    finally 
     Stream.Free; 
    end; 
    finally 
    Client.Free; 
    end; 
end; 
+0

Danke. Wenn ich diesen Code wörtlich ausführe, erhalte ich den Fehler "IOHandler is not valid" bei der Verarbeitung dieser Anweisung: Client.Get (URL, Stream); ... URL ist eine gültige URL ... Gedanken zu einer Lösung? – kualoa

+0

Zielen Sie auf HTTPS? – Victoria

+0

Vielen Dank ... diese beiden erhöhen den Fehler: URL: = 'https: //geocoding.geo.census.gov/geocoder/locations/onelineaddress? Adresse = 4600 + Silber + Hill + Rd% 2C + Suitland% 2C + MD + 20746 & benchmark = 9 & format = json '; URL: = 'https://tools.usps.com/go/ZipLookupResultsAction!input.action?resultMode=0&companyName=&address1=1600+PENNSYLVANIA+AVE+NW&address2=&city=&state=Select&urbanCode=&postalCode=&zip=20500'; – kualoa

Verwandte Themen