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