Code: Select all
HttpRequest = HTTPRequest(#PB_HTTP_Get, "https://www.purebasic.com/download/PureBasic_Demo.zip", "", #PB_HTTP_Asynchronous)
If HttpRequest
Debug "StatusCode: " + HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
Repeat
Progress = HTTPProgress(HttpRequest)
Select Progress
Case #PB_HTTP_Success
Debug "Download finished"
*Buffer = HTTPMemory(HTTPRequest)
If *Buffer
Debug "Memory buffer size: "+MemorySize(*buffer) ; Here the buffer can be written to disk or used directory
FreeMemory(*Buffer)
EndIf
FinishHTTP(HTTPRequest) ; Always call FinishHTTP() when request is finished
Break
Case #PB_HTTP_Failed
Debug "Download failed"
FinishHTTP(HTTPRequest) ; Always call FinishHTTP() when request failed
Break
Case #PB_HTTP_Aborted
Debug "Download aborted"
FinishHTTP(HTTPRequest) ; Always call FinishHTTP() when request is aborted
Default
Debug "Current download: " + Progress ; The current download progress, in bytes
Delay(100)
EndSelect
ForEver
Else
Debug "Request creation failed"
EndIf* Debug "StatusCode: " + HTTPInfo(HTTPRequest, #PB_HTTP_StatusCode)
Always be empty, because there is no information about header
* Case #PB_HTTP_Aborted
Never exit from cycle, because there is no Break command
