Datei von einem Link herunterladen
Moderator: Moderatoren
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Datei von einem Link herunterladen
Hallo,
ich habe einen Link mit user und Kennwort als Parameter.
Ich möchte diese Datei herunterladen.
Mit normalen HttpClient (oder xbHttpClient) bekomme ich keinen Zugriff
(Fehler: Your browser is unknown 0.0 ......)
Jetzt dachte ich an XbpHTMLViewer2(), da wird die Seite geladen und auch sofort die Datei heruntergeladen.
Fragen:
Ist das über den XbpHTMLViewer2() überhaupt der richtige Weg, wenn das ganze in einem Dienst automatisiert ablaufen soll ?
Würde das auch ohne Anzeigen eines Fensters klappen ?
Kann man den XbpHTMLViewer2 so konfigurieren, dass diese Downloads in einem vorgegebenem Ordner landen ?
ich habe einen Link mit user und Kennwort als Parameter.
Ich möchte diese Datei herunterladen.
Mit normalen HttpClient (oder xbHttpClient) bekomme ich keinen Zugriff
(Fehler: Your browser is unknown 0.0 ......)
Jetzt dachte ich an XbpHTMLViewer2(), da wird die Seite geladen und auch sofort die Datei heruntergeladen.
Fragen:
Ist das über den XbpHTMLViewer2() überhaupt der richtige Weg, wenn das ganze in einem Dienst automatisiert ablaufen soll ?
Würde das auch ohne Anzeigen eines Fensters klappen ?
Kann man den XbpHTMLViewer2 so konfigurieren, dass diese Downloads in einem vorgegebenem Ordner landen ?
Viele Grüße
Wolfgang
Wolfgang
Re: Datei von einem Link herunterladen
Hallo,
sollte das Erkennen des Browsers über den UserAgent erfolgen, kann man mit der Methode ":setUserAgent()" dem "HttpClient" einen UserAgent übergeben, vielleicht funktioniert dies. Was die einzelnen Browser hier übergeben, sagt dir Google.
oder: http://wieistmeinuseragent.de/
Grüße
sollte das Erkennen des Browsers über den UserAgent erfolgen, kann man mit der Methode ":setUserAgent()" dem "HttpClient" einen UserAgent übergeben, vielleicht funktioniert dies. Was die einzelnen Browser hier übergeben, sagt dir Google.
oder: http://wieistmeinuseragent.de/
Grüße
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9387
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 362 Mal
- Kontaktdaten:
Re: Datei von einem Link herunterladen
Aber der Download wird beim Download über eine Site (wie bei den Downloads der Computerzeitschriften) doch durch eine Browserfunktionalität ausgelöst. Geht das mit einem HttpClient überhaupt?
Herzlich,
Tom
Tom
Re: Datei von einem Link herunterladen
Hallo,
wir legen unsere Dateien zur Lizenzerweiterung auf unseren Webserver ab und laden sie so beim Kunden über den HttpClient runter:
wir legen unsere Dateien zur Lizenzerweiterung auf unseren Webserver ab und laden sie so beim Kunden über den HttpClient runter:
Code: Alles auswählen
oHC := HttpClient():new("http://www.url-not-exist.com/file.end")
//oHC:setUserAgent( <cUserAgent> )
cResult := oHC:send()
IF oHC:getStatusCode() != 200
IF oHC:getStatusCode() ==-1
? "Non HTTP protocol error:"
? oHC:getLastError()
? oHC:getLastMessage()
ELSE
? "HTTP protocol error:"
? oHC:httpResponse:statusCode
? oHC:httpResponse:statusText
ENDIF
ENDIF
//cResult = Inhalt der Datei, diesen unter einem entsprechenden Dateinamen abspeichern
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Datei von einem Link herunterladen
Danke erst mal, werde da mal ein wenig rumprobieren.
Weiterhin habe ich mal die Fragen auch an Alaska gestellt.
Weiterhin habe ich mal die Fragen auch an Alaska gestellt.
Viele Grüße
Wolfgang
Wolfgang
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Datei von einem Link herunterladen
Ich hab das mit cFile = LoadFromUrl() gemacht, wobei man die Kennwörter voranstellen kann.
Ich hatte allerdings auch nie ein Problem mit der Art meines Browsers in diesem Zusammenhang.
Ich hatte allerdings auch nie ein Problem mit der Art meines Browsers in diesem Zusammenhang.
Gruß
Hubert
Hubert
- brandelh
- Foren-Moderator
- Beiträge: 15699
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 69 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Datei von einem Link herunterladen
Auch bei der Funktion kann man den UserAgent einstellen:
SetLoadFromUrlIdentification()
SetLoadFromUrlIdentification()
Gruß
Hubert
Hubert
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Datei von einem Link herunterladen
Hallo Hubert,
danke für deine Gedanken.
Mittlererweile steht in der Hilfe zu LoadFromUrl:
Habe es damit und mit Hilfe von Andreas auch schon so probiert:
Status ist 200, in cResult ist aber nur eine komplette html-Seite mit js code usw.
Ich vermute, das der Aufruf des Links eine Seite mit Hilfe von js aufbaut und den Download der Datei veranlasst.
Das sehe ich ja auch, wenn ich die Url mit z.B. HtmlViewer2 aufrufe, da wird eine Login-Seite aufgebaut und der Dateidownload gestartet.
Ich denke, das muss die Firma mir eine andere Möglichkeit schaffen, an die Dateien zu kommen.
danke für deine Gedanken.
Mittlererweile steht in der Hilfe zu LoadFromUrl:
Code: Alles auswählen
Loads a document from a Web server.
The function is deprecated. Use the HttpClient() class instead.
Example: cResult := HttpClient():new( "http://www.alaska-software.com" ):send()
Code: Alles auswählen
cUrl := "https://......com/Documents/Documents/DownloadFile/33"
oHttpClient := HttpClient():new(cUrl)
oHttpClient:setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/114.0")
oHttpClient:HttpRequest:addParameter( "usr", "ERPD....." )
oHttpClient:HttpRequest:addParameter( "pwd", "S........." )
cResult := oHttpClient:send()
IF .NOT. nStatusOk == oHttpClient:getStatusCode()
RETURN .F.
ENDIF
Ich vermute, das der Aufruf des Links eine Seite mit Hilfe von js aufbaut und den Download der Datei veranlasst.
Das sehe ich ja auch, wenn ich die Url mit z.B. HtmlViewer2 aufrufe, da wird eine Login-Seite aufgebaut und der Dateidownload gestartet.
Ich denke, das muss die Firma mir eine andere Möglichkeit schaffen, an die Dateien zu kommen.
Viele Grüße
Wolfgang
Wolfgang
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9387
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 362 Mal
- Kontaktdaten:
Re: Datei von einem Link herunterladen
Sage ich doch. Der automatisch ausgelöste Download bedarf eines Browsers. Ein HttpClient arbeitet auf Dokumentenebene.
Herzlich,
Tom
Tom
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Datei von einem Link herunterladen
Einen Download auf einer Seite auslösen (z.B. durch Button drücken) ging doch früher problemlos über
Damit liess sich der Browser bezw. der Inhalt fersteuern und beliebige Aktionen ausführen.
Ob das heute noch geht weiss ich allerdings nicht......
Code: Alles auswählen
oIE := CreateObject( "InternetExplorer.Application" )
Ob das heute noch geht weiss ich allerdings nicht......
Valar Morghulis
Gruss Carlo
Gruss Carlo
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2936
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Datei von einem Link herunterladen
Habe jetzt der Firma gesagt, Sie mögen mir statt des Links zum Bild das Bild direkt als Base64 string in die json-Datei schreiben.
Damit sollte das hoffentlich dann klappen.
Damit sollte das hoffentlich dann klappen.
Viele Grüße
Wolfgang
Wolfgang