Page 1 of 1

HTTPRequest example

Posted: Wed Dec 17, 2025 10:55 pm
by Sergey

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
Marks:
* 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