HttpClient (gb.net.curl)
This class provides an HTTP client that sends requests to an HTTP server, and receives the response.
Inherited static properties
Static methods
Properties
| 
Auth  
 | 
Return or set the HTTP authentication mode to use.
 | 
| 
Code  
 | 
Returns the HTTP Status Code sent by the server.
 | 
| 
CookiesFile  
 | 
Return or set the file that will be used for reading and storing cookies.
 | 
| 
Encoding  
 | 
Return or set the "Accept-Encoding" HTTP header.
 | 
| 
Headers  
 | 
Return the HTTP headers as a String array.
 | 
| 
Reason  
 | 
Return the HTTP reason string.
 | 
| 
Redirect  
 | 
Return or set if the HttpClient must follow HTTP redirections.
 | 
| 
UpdateCookies  
 | 
Return or set if cookies must be updated. The default value is False.
 | 
| 
UserAgent  
 | 
Returns or sets the UserAgent used to make the request.
 | 
| 
Version  
 | 
Return or set the HTTP protocol version to use.
 | 
Inherited properties
| 
Async  
 | 
Returns or sets whether the FTP/HTTP request will be asynchronous.
 | 
| 
Blocking  
 | 
Returns or sets if the stream is blocking.
 | 
| 
BufferSize  
 | 
Returns or sets the preferred receive buffer size, between 0 and 512 KB.
 | 
| 
ByteOrder  
 | 
Returns or sets the byte order used to read or write binary data to the stream.
 | 
| 
Debug  
 | 
Returns or sets the debugging mode.
 | 
| 
Downloaded  
 | 
Returns the number of bytes that have been downloaded.
 | 
| 
EndOfFile  
 | 
This property signals whether the last use of LINE INPUT reached the end of file,
instead of reading a full line with an end-of-line character.
 | 
| 
EndOfLine  
 | 
Return or set the newline separator used by this stream.
 | 
| 
Eof  
 | 
Return if a stream reached its end.
 | 
| 
ErrorText  
 | 
Return the error string associated with the error code returned by the curl library.
 | 
| 
Handle  
 | 
Returns the system file descriptor associated with this Stream.
 | 
| 
IsTerm  
 | 
Return if a stream is associated with a terminal.
 | 
| 
Lines  
 | 
Returns a virtual object that allows you to enumerate a stream line by line.
 | 
| 
NoShare  
 | 
 | 
| 
NullTerminatedString  
 | 
Return or set if strings are null-terminated when they are serialized.
 | 
| 
Password  
 | 
Returns or sets the password used for authorization.
 | 
| 
Proxy  
 | 
Returns a virtual object used for defining proxy parameters.
 | 
| 
SSL  
 | 
This virtual property allows to define the SSL properties of the CURL connection.
 | 
| 
Status  
 | 
Returns the status of the client.
 | 
| 
Tag  
 | 
Returns or sets the tag associated with the stream.
 | 
| 
TargetFile  
 | 
Return or set the target file used for download operations.
 | 
| 
Term  
 | 
Return a virtual object that allows to manage the terminal associated with the stream.
 | 
| 
Timeout  
 | 
Returns or sets the client timeout in seconds.
 | 
| 
TotalDownloaded  
 | 
Returns the total number of bytes that are expected to be downloaded.
 | 
| 
TotalUploaded  
 | 
Returns the total number of bytes that are expected to be uploaded.
 | 
| 
URL  
 | 
Return or set the URL of the resource to download.
 | 
| 
Uploaded  
 | 
Return the number of bytes that have been uploaded.
 | 
| 
User  
 | 
Returns or sets the user used for authorisation.
 | 
Methods
| 
CopyFrom  
 | 
Fill the HttpClient object from the properties of another HttpClient object.
 | 
| 
Get  
 | 
This method performs a call to the http server using the standard 'GET' method.
 | 
| 
Head  
 | 
This method performs a call to the http server using the standard 'HEAD' method.
 | 
| 
Post  
 | 
This method performs a call to the http server using the standard 'POST' method.
 | 
| 
PostFile  
 | 
Send a file through a POST request.
 | 
| 
Put  
 | 
Send some data to a specific URL by using the "PUT" method.
 | 
| 
PutFile  
 | 
Send a file through a PUT request.
 | 
| 
Stop  
 | 
Aborts the request.
 | 
Inherited methods
| 
Begin  
 | 
Start to buffer data written to the stream, so that everything will be sent when the Send method is called.
 | 
| 
Close  
 | 
Closes the stream.
 | 
| 
Drop  
 | 
Drop the data that has been buffered since the last call to the Begin method.
 | 
| 
Peek  
 | 
Returns the contents of the internal stream buffer.
 | 
| 
ReadLine  
 | 
Read a line of text from the stream, like the LINE INPUT instruction.
 | 
| 
Send  
 | 
Send all the data, in one shot, since the last call to Begin.
 | 
| 
Watch  
 | 
Start or stop watching the stream file descriptor for reading or writing, after it has been opened.
 | 
Inherited events
| 
Cancel  
 | 
This event is raised when a request has been cancelled.
 | 
| 
Connect  
 | 
Raised when the connection is established.
 | 
| 
Error  
 | 
Raised when there was an error returned by the CURL library.
 | 
| 
Finished  
 | 
Raised when a command terminates correctly.
 | 
| 
Progress  
 | 
This event is raised periodically when something is downloaded or uploaded.
 | 
| 
Read  
 | 
Raised when there is some data received.
 | 
Example #1
' How to download a file from the internet synchronously
' 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 forever if the server does not
' reply properly.
Public Sub GetFile()
  Dim hClient As HttpClient
  Dim sBuffer As String
  hClient = New HttpClient AS "hClient"
  hClient.URL = "http://elinks.or.cz/"
  hClient.Async = FALSE
  hClient.Timeout = 60
  hClient.Get
  Print "Begin"
  If hClient.Status < 0 Then
    Print "ERROR"
  Else
    ' Success - read the data
    If Lof(hClient) Then sBuffer = Read #hClient, Lof(hClient)
    Print sBuffer
  End If
  Print "end"
End
Example #2
This second example shows how you can download a file from the internet asynchronously.
It calls the 
DownloadAsync method with your 
URL. Then, when the download is completed, it displays the received HTML in the Finished event handler.
' How to download a file from the internet asynchronously
Public hAsyncClient As New HttpClient AS "hAsyncClient"
Private sDownloadBuffer As String
Public Sub DownloadAsync(URL As String)
  sDownloadBuffer = ""
  hAsyncClient.URL = URL
  hAsyncClient.TimeOut = 20
  hAsyncClient.Async = TRUE
  hAsyncClient.Get()
End
Public Sub hAsyncClient_Connect()
  Print "Connected to " & hAsyncClient.URL
End
Public Sub hAsyncClient_Read()
  Dim sBuffer As String
  sBuffer = Read #Last, Lof(Last)
  sDownloadBuffer &= sBuffer
End
Public Sub hAsyncClient_Error()
  Print "Error " & hAsyncClient.Status & " while downloading " & hAsyncClient.URL
End
Public Sub hAsyncClient_Finished()
  Print sDownloadBuffer
End