plattformunabhängiger Dateidownload

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

plattformunabhängiger Dateidownload

Beitrag 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
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
sbehrens
Beiträge: 274
Registriert: 08.09.2004 18:41
Kontaktdaten:

Beitrag 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]
enjoy life... while you can!
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag 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?
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

DarkDragon (hoffentlich verwechsel ich gerade niemanden) hat auf jeden Fall mal eine Funktionssammlung dazu geschrieben
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag 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.
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

DAnke, ich werd es mir mal anschauen.
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
sbehrens
Beiträge: 274
Registriert: 08.09.2004 18:41
Kontaktdaten:

Beitrag 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
enjoy life... while you can!
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Das ist genau das, was ich suche! :o

Danke schön, jetzt kann es endlich weitergehen :allright:
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

kein Proxy, keine Proxyauth., kein User auth., keine automatische weiterleitet und keine Fehlerhandharbung,....
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
Antworten