fb:porticula NoPaste
test_http_get.bas
Uploader: | ThePuppetMaster |
Datum/Zeit: | 27.01.2009 03:37:46 |
Hinweis: Dieser Quelltext ist Bestandteil des Projekts TSNEX V2/V3 (Extension), zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.
'##############################################################################################################
'HTTP_Get TEST-CLIENT für TSNE_V3 und TSNEX_V3
'##############################################################################################################
'##############################################################################################################
#include once "TSNEX_V3.bi" 'Wir binden die TSNE-X Version 3 ein. Sie beinhaltet bereits die TSNE_V3
'##############################################################################################################
'Ein Callback (Das ist Optional), kann den aktuellen fortschritt anzeigen. Dabei wird die Maximalgrösse sowie
'die bereits heruntergeladene Datengrösse angezeigt.
Sub ProgressCallback(V_Max as UInteger, V_Value as UInteger)
locate , 1 'Wir positionieren unseren Cursor an den Anfang der Zeile
Print Str(V_Max); " / "; Str(V_Value); 'Und schreiben odrt (ohen Zeilenumbruch) die aktuellen Werte hin.
End Sub
'##############################################################################################################
'Die URL Definieren. Sie wird per Commandline übergeben und muss folgendermassen aufgebaut sein:
'http://[<benutzername>[:<Passwort>]@]<Hostname>.<Domain>/[<verzeichniss>]/[<Dateiname>][.<Dateierweiterung>]
'Als beispiel kann man "Http://www.google.de/" oder "Http://www.google.de/index.hml" nutzen
Dim XURL as String = Command()
'Wir declarieren noch (ist optional) eine Variable, welche den HTTP-Statuscode aufnehmen wird.
'Damit können wir überprüfen, ob die abfrage erfolgreich war. Liefert sie einen Wert von 200 zurück, dann
'teilt uns der HTTP-Server dadurch mit, das alles OK war, und er die angeforderten Daten überträgt.
Dim XReturn as UShort
'Hier rufen wir die Get Funktion für HTTP auf.
'Dabei übergeben wir der Funktion eine Komplette URL, welche bereits Host / Port / User und Passwort enthält.
'Alternativ können auch alle Angaben direkt der Funktion übergeben werden, falls keine URL verwendet werden soll.
'Zusätzlich KANN (muss NICHT) ein Callback angegeben werden. Dieses Informiert uns über den aktuellen Fortschritt.
'
'Wird kein Zielverzeichniss angegeben, wird die Datei automatisch in das Selbe verzeichniss geschrieben.
'Ist eine Datei mit dem selben Namen schon vorhanden, erfolgt eine Fehlermeldung. Die Datei muss folglich zuvor
'von hand gelöscht werden, damit die Funktion den Download aufnehmen kann.
'Die Datei kann mit "Kill" von hand gelöscht werden.
Dim RV as Integer = TSNEX_HTTP_Get(XURL, , , , , , XReturn, , , , @ProgressCallback)
Print "" 'Da wir ein Callback nutzen, das beim Print keine zeilenumbrüche macht, machen wir jetzt einen
If RV <> TSNEX_Const_NoError Then 'Prüfen, ob die Abfrage erfolgreich war. Wenn nicht
Print TSNEX_GetGURUCode(RV) 'dann geben wir den Fehlercode zurück
End -1 'Und beenden das Programm
End If
Print "HTTP_Status_Code: "; XReturn 'Zu guter letzt noch den HTTP_Status_Code ausgeben.
'200 = Alles OK
'404 = Datei wurde nicht gefunden
'... = Siehe: HTTP://de.WikiPedia.org/wiki/HTTP
' bzw. HTTP://de.WikiPedia.org/wiki/HTTP#HTTP-Statuscodes
End 0 'Zum schluss das Programm sauber beenden