Gambas: Netzwerkprogrammierung

Aus Wikibooks
Wechseln zu: Navigation, Suche


Zurück zum Gambas-Inhaltsverzeichnis.


Eine Datei herunterladen[Bearbeiten]

Um eine Datei herunterzuladen verwendet man Http, für Gambas gibt es dementsprechend die Klasse HttpClient. Diese ermöglicht einem mit den beiden typischen Methoden Post und Get Websites anzufordern. Hier ein Beispiel welches eine Website herunterläd und den Quellcode der Seite ausgibt (erfordert das Einbinden der Komponenten gb.net und gb.net.curl):

PUBLIC SUB Main()
  DIM contents AS String
  contents = getFile("http://gambas.sourceforge.net/")
  IF contents = NULL THEN 
    PRINT "Fehler beim herunterladen!"
  ELSE
    PRINT contents
  END IF
END

' Läd eine Seite runter und gibt diese als String zurück
PUBLIC FUNCTION getFile(url AS String) AS String
  DIM h AS HttpClient
  DIM buffer AS String
  
  buffer = NULL
  h = NEW HttpClient AS "h"
  h.URL = url
  h.Get() ' Mit der Get-Methode die Website anfordern
  
  DO WHILE h.Status <> 0
    WAIT 0.01
  LOOP

  ' Wenn die Antwort OK ist gehts weiter
  IF h.Status >= 0 THEN
    ' Wenn die Datei was beinhaltet...
    IF Lof(h) THEN 
      ' lade sie runter -> in den string buffer
      READ #h, buffer, Lof(h)
    END IF 
  END IF

  RETURN buffer
END