ReceiveHTTPFile - Passwortgeschützt? [gelöst]

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

ReceiveHTTPFile - Passwortgeschützt? [gelöst]

Beitrag von gekkonier »

Hi Leute, ich habe eine Passwortgeschützte Webcam, und von dieser möchte ich nun regelmässig Bilder ziehen und in eine Datenbank speichern!
Die URL zum Ansteuern sieht so aus:

http://User:Passwort@meineipcam.tintifax.com/IMAGE.JPG

Also so ähnlich halt, ich habe nur für das Forum die Url, User und Pass abgeändert.
Wenn ich diese URL in den Internetexplorer, Firefox oder Safari aufrufe sehe ich auch das Jpeg!

Jetzt habe ich ein kleines Testprogramm (mittels PB Hilfe) gebastelt, welches aber nicht zu funktionieren scheint! Es wird hier immer failed! ausgegeben (wie gesagt, die URL ist nicht so wie im Quelltext, sondern "richtig"):

Code: Alles auswählen

OpenConsole()
InitNetwork()

url$ = "http://User:Passwort@meineipcam.tintifax.com/IMAGE.JPG"
filename$ = "download.jpg"

If ReceiveHTTPFile(url$, filename$)
  PrintN("success!")
Else
  PrintN("failed!")
EndIf

PrintN("press enter..")
Input()
CloseConsole()
Kann mir jemand einen Tipp geben, wie ich das Bild (welches durch anscheinend .htaccess oder so geschützt ist) programmtechnisch runterladen kann?

Danke & mfg, Gregor

EDIT: Bevor die Fragen kommen: Ja, das Compilat und PB darf aufs Internet zugreifen ;)
Zuletzt geändert von gekkonier am 10.06.2008 08:32, insgesamt 1-mal geändert.
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Schon mit UrlDownloadToFile probiert? Scheinbar gibts mit dem neuen Befehl von PB nämlich Probleme. Siehe hier: http://www.purebasic.fr/german/viewtopic.php?t=16830

Ich vermute jetzt einfach mal das der Probleme mit Sonderzeichen in der Url hat!
Zuletzt geändert von rolaf am 09.06.2008 14:17, insgesamt 1-mal geändert.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Beitrag von gekkonier »

Ja, danke, wollte ich grad posten ;)

Code: Alles auswählen

URLDownloadToFile_(0,url$, filename$, 0, 0)
Funktioniert ;)

Allerdings wäre die PB eigene Sache vermutlich wünschenswerter, da Plattformkompatibel usw. usf.

Danke!
Rokur
Beiträge: 167
Registriert: 29.12.2005 09:58
Computerausstattung: Intel Core2 Quad (4x2,4 GHz), 4096 MB RAM, GForce 8800GTX 786 MB
Windows XP 32 Bit, PureBasic 4.40 (x86)

Beitrag von Rokur »

Wenn du es plattformunabhängig willst, dann kannst du dir den HTTP-Request selbst zusammenbauen und dann speichern was zurück kommt. Siehe Network-Library, gute Beispiele gibts hier im Forum (Suche).
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Beitrag von gekkonier »

Jetzt hab ich doch noch ein Problem damit, und zwar wegen des Cachings.

Wenn die Applikation jetzt läuft und sagenwirmal jede Minute das Image zieht, dann wird im Hintergrund ein Caching Mechanismus aktiv, und das Image wird immer vom Cache geladen, ausser man startet das Programm neu.

Abhilfe laut diesem Thread hier schafft DeleteUrlCacheEntry_:
http://www.purebasic.fr/german/viewtopi ... cacheentry
Gesagt, getan, allerdings funktioniert das komischerweise bei mir nicht. Es wird zwar kein Fehler angezeigt, allerdings auch nicht der Cache zu diesem File gelöscht.
Dann habe ich mir das bezüglich Caching unter Windows durchgelesen:
http://msdn.microsoft.com/en-us/library ... S.85).aspx
(Hier spinnt der URL-Parser von phpBB, bitte die URL komplett in die Adresszeile vom Browser kopieren!)

Mein Plan wäre jetzt, das FLAG INTERNET_FLAG_DONT_CACHE zu setzten, das würde mein Programm einfach nicht cachen lassen. Jedenfalls glaube ich das.

Jetzt habe ich nur eine kleine Bitte: Ich bin in Windowsprogrammierung absolut nicht versiert und wüsste jetzt keinen Weg dieses Flag zu setzen. Oder ums anders zu formulieren: Ist das der richtige Weg?

Kann mir jemand dabei bitte helfen?
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

Beitrag von ts-soft »

http://www.purebasic.fr/english/viewtop ... 199#217199
Der vielseitigste und beste Code in dieser Richtung.
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
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Beitrag von gekkonier »

Das funktioniert!
Danke für den Tipp!
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Beitrag von gekkonier »

Nur rein interessenshalber (es funktioniert jetzt zwar, aber ich wills einfach wissen *g*):

Wie kann man das im obigen Post angegebene FLAG setzen?
Ich möchte bissl mehr über Windowsprogrammierung mit PureBasic lernen, aber zu FLAG finde ich hier nicht viel, aus dem ich schlau werde.
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

Beitrag von ts-soft »

Das Flag ist doch auch in dem Code, soweit ich mich erinnere. Ist dort auch
deklariert, da in PB nicht vorhanden.

Der Code ist zwar sehr aufwendig, aber funktioniert bisher immer sehr
zuverlässig und unterstützt so ziemlich alles was man sich denken kann :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
Benutzeravatar
gekkonier
Beiträge: 314
Registriert: 20.04.2007 09:06
Wohnort: Wien

Beitrag von gekkonier »

Ich glaub ich muss mir den Quelltext mal genauer ankucken, kann bestimmt daraus noch was lernen ;)

Danke an alle, Problem gelöst :allright:
Antworten