Seite 1 von 2
plattformunabhängiger Dateidownload
Verfasst: 31.01.2005 02:23
von Laurin
Moin
Ich will eine XML-Datei aus dem Netz herunterladen. Das sollte möglichst plattformunabhängig sein.
UrlDownloadToFile_() geht ja nur unter Windows.
Greetz Laurin
Verfasst: 31.01.2005 11:39
von sbehrens
Du könntest eine eigene Prozedur schreiben, die dir eine Datei runterlädt. Dazu muss man sich mit dem HTTP auskennen, aber es gibt dazu genug Informationen im Inet.

Bsp:
http://www.jmarshall.com/easy/http/
mfG
Basti
[Edit]Guckste hier:
http://www.robsite.de/php/pureboard/vie ... e+download 
[/Edit]
Verfasst: 31.01.2005 13:24
von Laurin
Danke. Der erste Link hilft weiter, obwohl ich eigendlich keinen eigenen HTTP-Zugriff programmieren wollte.
Der Code vom zweiten Link enthält etwas WinAPI. Ist also für meine Zwecke nicht geeignet.
Hm... geht das eigendlich nicht etwas weniger kompliziert?
Verfasst: 31.01.2005 14:37
von bluejoke
DarkDragon (hoffentlich verwechsel ich gerade niemanden) hat auf jeden Fall mal eine Funktionssammlung dazu geschrieben
Verfasst: 31.01.2005 20:02
von GPI
Meine HTTP_- Routinen kann man auch realtiv einfach auf universell ummünzen (die API_Datei-Aufrufe auf eigene umstellen). Einzig die Erkennung eines Server-Disconnect ist ohne API unmöglich.
Verfasst: 31.01.2005 20:14
von DarkDragon
bluejoke hat geschrieben:DarkDragon (hoffentlich verwechsel ich gerade niemanden) hat auf jeden Fall mal eine Funktionssammlung dazu geschrieben

meins war eine einzige Funktion, das war jemand anders, allerdings hab ich hier nen kompletten API unabhängigen FTP Clienten gemacht, ohne die Lib von PureArea.net
[EDIT] Es gibt aber eine HTTP Request funktionssammlung in Code Tipps und Tricks.
Verfasst: 31.01.2005 22:51
von Laurin
DAnke, ich werd es mir mal anschauen.
Verfasst: 01.02.2005 00:10
von sbehrens
Code: Alles auswählen
#EOL=Chr(13)+Chr(10) ;End Of Line
If InitNetwork()
Debug "InitNetwork() Successful."
server$="www.purearea.net" ;Must be "www.*.???"
url$="/pb/german/index.htm" ;Can be relative Or absoulute
ServerID=OpenNetworkConnection(server$,80) ;open connection to webserver at port 80
If ServerID
Debug "Connection Successful."
SendNetworkString(ServerID,"GET "+url$+" HTTP/1.1"+#EOL) ;Send Request
SendNetworkString(ServerID,"Host: "+server$+#EOL) ;Send Host
SendNetworkString(ServerID,#EOL) ;Send "End of Request"
Debug "Send Request. "+"GET "+url$+" HTTP/1.1"
mem=AllocateMemory(102400)
Debug "Allocated Memory."
Repeat
If ReceiveNetworkData(ServerID,mem,102400)
dat$=PeekS(mem)
Debug "Received Data: "+dat$
EndIf
ForEver
Else
Debug "Couldn't connect to the Server."
EndIf
Else
Debug "InitNetwork() failed."
EndIf
Ich weiß aber noch nicht wie ich checken soll ob die Datei fertig gesendet wurde. Normalerweise doch durch zwei #EOL, aber die können doch auch im File enthalten sein? Außerdem müssen da die Server-Infos noch rausgefiltert werden.
mfG
Basti
Verfasst: 01.02.2005 14:29
von Laurin
Das ist genau das, was ich suche!
Danke schön, jetzt kann es endlich weitergehen

Verfasst: 01.02.2005 19:05
von GPI
kein Proxy, keine Proxyauth., kein User auth., keine automatische weiterleitet und keine Fehlerhandharbung,....