Seite 1 von 1

Download File mit autorisierung

Verfasst: 23.04.2010 22:52
von Andreas21
Hi, Ich wolte mit ReceiveHTTPFile eine Datei aus dem Internet herunterladen.
Nur leider giebts es immer schieff.

Diese Datei ist geschützt.
Mit WGet gehts problemlos.

Es giebt zwar einen Code hier im Forum nur der ist extrem lang.


Also ich will z.b. http://benutzername:password@url.net/lala/oiu.gz herunter laden.

Re: Download File mit autorisierung

Verfasst: 23.04.2010 23:05
von ts-soft
IMHO sollte es so gehen:

Code: Alles auswählen

InitNetwork()

Define.s URL = "http://url.net/lala/oiu.gz"
Define.s User, Pwd

User = "benutzername"
Pwd = "password"

URL = SetURLPart(URL, #PB_URL_User, User)
URL = SetURLPart(URL, #PB_URL_Password, Pwd)

URL = URLEncoder(URL)

Debug ReceiveHTTPFile(URL, GetTemporaryDirectory() + "oiu.gz")
Kann ich aber nicht testen. Wenn es nicht geht, ist die Frage: Ein Bug oder Feature Request.

Gruß
Thomas

PS: Warum unter Linux gepostet? Sollte unter Windows dasselbe sein. Aber dann bekommste wohl lauter
unnütze win-api Lösungen :wink:

Re: Download File mit autorisierung

Verfasst: 23.04.2010 23:20
von Andreas21
Das geht leider nicht.

Die url die am ende raus kommt ist ja ok. Nur ReceiveHTTPFile giebt mir jedesmal 0 zurück.

z.b.: http://benutzername:password@url.net/lala/oiu.gz

Und warum ich es unter Linux gepostet habe ist der Grund da mit sontzt zu 90% Win Api lösungen gegeben werden.

Ich werde mich mal Morgen mit den Network Befehlen was zu machen.

Edit:
Ok hab doch den langen code wieder genommen.
Hatte damals schon Probleme damit gehabt http://forums.purebasic.com/german/view ... 21&t=16937

Code: Alles auswählen

PureHTTP Include - Version: 0.42b 
; OS: Linux / Windows / AmigaOS / MacOSX 
; Author: Marius Eckardt (Thalius) 
; a lil lib for HTTP ( for now just Downloading ;) 
; Last Changes: 08.11.2007

Re: Download File mit autorisierung

Verfasst: 22.07.2010 21:24
von langinagel
Moinsen,

ich nutze ReceiveHTTPFile() auch unter Linux (Ubuntu).
Allerdings klappt es mal und mal nicht.
comdirect.com anzusprechen funktioniert,
rosettacode.org funzt leider nicht .

Koennte es sein, dass es vom Webserver abhaengt ??
Nur 'ne Mutmassung.

Schoenen Gruss
Thorsten

Re: Download File mit autorisierung

Verfasst: 22.07.2010 21:50
von Kiffi
langinagel hat geschrieben:rosettacode.org funzt leider nicht .

Code: Alles auswählen

InitNetwork()
If ReceiveHTTPFile("http://rosettacode.org/wiki/Minesweeper_game", GetTemporaryDirectory() + "temp.html")
  Debug ":-)"
Else
  Debug ":-("
Endif
... funktioniert (bei mir).

Grüße ... Kiffi

Re: Download File mit autorisierung

Verfasst: 23.07.2010 23:52
von langinagel
Hmmm, der Code funzt auch bei mir.

Aber der Code:

Code: Alles auswählen

InitNetwork()
If ReceiveHTTPFile("http://rosettacode.org/mw/index.php?title=Special:Categories&limit=5000", GetTemporaryDirectory() + "temp.html")
  Debug ":-)"
Else
  Debug ":-("
EndIf 
ergibt bei mir ein ":-(".
Und das war mein Standardbeispiel für Rosettacode.

Neue Hypothese: Könnte ReceiveHTTPFile ein Zeitlimit haben? *rumspekulier*

Gruss
Thorsten

Re: Download File mit autorisierung

Verfasst: 24.07.2010 00:43
von Kiffi
das liegt anscheinend am Doppelpunkt zwischen 'Specials' und 'Categories'.

Wenn Du den durch ein '%3A' austauschst, dann funktioniert das auch mit
der von Dir angegebenen Seite.

Code: Alles auswählen

InitNetwork()
If ReceiveHTTPFile("http://rosettacode.org/mw/index.php?title=Special%3ACategories&limit=5000"), GetTemporaryDirectory() + "temp.html")
  Debug ":-)"
Else
  Debug ":-("
EndIf
@All: Wieso wird der Doppelpunkt nicht mit URLEncoder() gewandelt?

Grüße ... Kiffi

Re: Download File mit autorisierung

Verfasst: 24.07.2010 09:31
von NicTheQuick
Ja, mit solchen Zeichen muss man aufpassen. Firefox und ich glaube jeder andere Browser auch erkennt solche Zeichen selbst und wandelt sich entsprechend um vor der Übertragung zum Server. Ich schätze das musst du bei 'ReceiveHTTPFile()' dann auch vorher selbst machen.

Re: Download File mit autorisierung

Verfasst: 24.07.2010 11:58
von langinagel
Moinsen,

nun läuft's auch bei mir (völlig überraschend). :bounce:

Ob das nun auch das ursprüngliche Problem von Andreas21 löst, steht noch aus.

Besten Dank auch für den Tipp.

Gruß
Thorsten

Re: Download File mit autorisierung

Verfasst: 24.07.2010 13:52
von Andreas21
Mein Problem wird damit nicht gelöst ;)

Ich hatte ja das Problem das ich mich mit zugangsdaten beim Server anmelden muste.

Code: Alles auswählen

InitNetwork()
If ReceiveHTTPFile("http://benutzername%3Apassword%40url/server/archive.gz", GetTemporaryDirectory() + "temp.html")
  Debug ":-)"
Else
  Debug ":-("
EndIf

Code: Alles auswählen

InitNetwork()
If ReceiveHTTPFile("http://benutzername%3Apassword@url/server/archive.gz", GetTemporaryDirectory() + "temp.html")
  Debug ":-)"
Else
  Debug ":-("
EndIf
%3A = :
%40 = @

Das geht nicht.