| Properties | Methods | Events | |||
| /comp/gb.net.curl/curl/async /comp/gb.net.curl/httpclient/auth ByteOrder /comp/gb.net.curl/httpclient/code /comp/gb.net.curl/httpclient/cookiesfile EndOfFile EndOfLine Handle /comp/gb.net.curl/httpclient/headers Id /comp/gb.net.curl/curl/password /comp/gb.net.curl/curl/proxy /comp/gb.net.curl/httpclient/reason /comp/gb.net.curl/curl/status /comp/gb.net.curl/curl/tag /comp/gb.net.curl/curl/timeout /comp/gb.net.curl/curl/url /comp/gb.net.curl/httpclient/updatecookies /comp/gb.net.curl/curl/user /comp/gb.net.curl/httpclient/useragent | Close /comp/gb.net.curl/httpclient/get /comp/gb.net.curl/curl/peek /comp/gb.net.curl/httpclient/post /comp/gb.net.curl/httpclient/stop | /comp/gb.net.curl/curl/.connect /comp/gb.net.curl/curl/.error /comp/gb.net.curl/curl/.finished /comp/gb.net.curl/curl/.read |
PUBLIC SUB getfile()
'How to download a file from the internet
'The following code works in Gambas version 1.0.15
'On 2007-jun-17, Daniel Compos noted that for Gambas v 1.9.49+:
' Put the "Async" PROPERTY set TO FALSE prior TO Get(), that way
' Get() will STOP the program flow UNTIL all the information IS
' received. In that CASE you should USE also the "TimeOut" PROPERTY TO
' set a timeout, IF NOT, it could hang forvever IF the server does NOT
' reply properly.
DIM h AS HttpClient
DIM buffer AS String
h = NEW HttpClient AS "h"
h.URL = "http://elinks.or.cz/"
h.Get
DO WHILE h.Status<>0
WAIT 0.01
LOOP
PRINT "begin"
IF h.Status<0 THEN
PRINT "ERROR"
ELSE
' Success - read the data
IF Lof(h) THEN READ #h, buffer, Lof(h)
PRINT buffer
END IF
PRINT "end"
END
This example shows how you can download a file from the internet asynchronously. Call the DownloadAsync method with your url. Then when the download is complete display the HTML in the Finished event.
PUBLIC _downloadAsync AS NEW HttpClient AS "_Download" PRIVATE downloadBuffer AS String PUBLIC SUB DownloadAsync(URL as String) downloadBuffer = "" _downloadAsync.URL = URL _downloadAsync.TimeOut = 20 _downloadAsync.Get() END PUBLIC SUB _Download_Connect() PRINT "Connection found " & _downloadAsync.URL END PUBLIC SUB _Download_Read() DIM buffer AS String READ #LAST, buffer, Lof(LAST) downloadBuffer &= buffer END PUBLIC SUB _Download_Error() PRINT "Error " & _downloadAsync.Status & " downloading " & _downloadAsync.URL END PUBLIC SUB _Download_Finished() PRINT downloadBuffer END