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
:mrgreen: 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! :o

Danke schön, jetzt kann es endlich weitergehen :allright:

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