Download File mit autorisierung

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Download File mit autorisierung

Beitrag 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.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Download File mit autorisierung

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Download File mit autorisierung

Beitrag 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
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
langinagel
Beiträge: 30
Registriert: 03.08.2005 21:06
Computerausstattung: AMD-Krücke 8GB / Lubuntu 18.04
core i3 / 4GB / 1TB / Ubuntu 16.04
und noch paar alte Schinken
Wohnort: Germ-any
Kontaktdaten:

Re: Download File mit autorisierung

Beitrag 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
https://www.doerpsoft.org

Boost. Work. Efficiency.

AMD-Krücke mit Lubuntu-18.04 / iCore7 mit Win10-64
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Download File mit autorisierung

Beitrag 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
a²+b²=mc²
Benutzeravatar
langinagel
Beiträge: 30
Registriert: 03.08.2005 21:06
Computerausstattung: AMD-Krücke 8GB / Lubuntu 18.04
core i3 / 4GB / 1TB / Ubuntu 16.04
und noch paar alte Schinken
Wohnort: Germ-any
Kontaktdaten:

Re: Download File mit autorisierung

Beitrag 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
https://www.doerpsoft.org

Boost. Work. Efficiency.

AMD-Krücke mit Lubuntu-18.04 / iCore7 mit Win10-64
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Download File mit autorisierung

Beitrag 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
a²+b²=mc²
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Re: Download File mit autorisierung

Beitrag 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.
Benutzeravatar
langinagel
Beiträge: 30
Registriert: 03.08.2005 21:06
Computerausstattung: AMD-Krücke 8GB / Lubuntu 18.04
core i3 / 4GB / 1TB / Ubuntu 16.04
und noch paar alte Schinken
Wohnort: Germ-any
Kontaktdaten:

Re: Download File mit autorisierung

Beitrag 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
https://www.doerpsoft.org

Boost. Work. Efficiency.

AMD-Krücke mit Lubuntu-18.04 / iCore7 mit Win10-64
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: Download File mit autorisierung

Beitrag 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.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Antworten