Web

HTTP request/post methods.

  • There is a pre-defined variable HTTPClient to use.


EHTTPStatus.AsInteger

property EHTTPStatus.AsInteger: Integer;

EHTTPStatus.AsString

property EHTTPStatus.AsString: String;

THTTPClient.Create

function THTTPClient.Construct: THTTPClient; static;
function THTTPClient.Construct(Proxy: String; Auth: String = ""): THTTPClient; static;

THTTPClient constructor. Use the new keyword to call this method like so:

myClient := new THTTPClient();

THTTPClient.OnDownloadProgress

property THTTPClient.OnDownloadProgress: TSimbaHTTPDownloadingEvent;

THTTPClient.OnExtractProgress

property THTTPClient.OnExtractProgress: TSimbaHTTPExtractingEvent;

THTTPClient.ConnectTimeout

property THTTPClient.ConnectTimeout: Integer;

THTTPClient.ReadWriteTimeout

property THTTPClient.ReadWriteTimeout: Integer;

THTTPClient.Cookies

property THTTPClient.Cookies: TStringArray;

THTTPClient.ResponseStatus

property THTTPClient.ResponseStatus: EHTTPStatus;

Returns the response status of the last response.

  if (HTTPClient.ResponseStatus = EHTTPStaus.OK) then
    WriteLn('Response status was OK!')

THTTPClient.ResponseHeaders

function THTTPClient.ResponseHeaders: TStringArray;

THTTPClient.ResponseHeader

property THTTPClient.ResponseHeader[Name: String]: String;

THTTPClient.RequestHeader

property THTTPClient.RequestHeader[Name: String]: String;

THTTPClient.Reset

procedure THTTPClient.Reset;

THTTPClient.Get

function THTTPClient.Get(URL: String): String;

Return a webpages content as a string.


THTTPClient.GetJson

function THTTPClient.GetJson(URL: String): TJsonItem;

THTTPClient.GetFile

procedure THTTPClient.GetFile(URL, LocalFileName: String);

Save a webpages content to a local file.


THTTPClient.GetZip

procedure THTTPClient.GetZip(URL: String; OutputPath: String);

THTTPClient.Head

function THTTPClient.Head(URL: String): EHTTPStatus;

Header request. Headers will be written to HTTPClient.GetResponseHeaders()


THTTPClient.Post

function THTTPClient.Post(URL: String; Data: String): String;

HTTP post request.

  • Data is sent in request body.


THTTPClient.Patch

function THTTPClient.Patch(URL, Data: String): String;

THTTPClient.Put

function THTTPClient.Put(URL, Data: String): String;

THTTPClient.Delete

function THTTPClient.Delete(URL, Data: String): String;

THTTPClient.Options

function THTTPClient.Options(URL, Data: String): String;

THTTPClient.PostForm

function THTTPClient.PostForm(URL: String; Data: String): String;

Post form data (www-urlencoded)


THTTPClient.PostFormFile

function THTTPClient.PostFormFile(const URL, FieldName, FileName: string): String;

Post form with a local file file


URLOpenInBrowser

procedure URLOpenInBrowser(URL: String);

Opens a URL in the systems default internet browser.


URLFetch

function URLFetch(URL: String): String;

Simple method to return the contents of a webpage.


URLFetchToFile

function URLFetchToFile(URL, FileName: String): Boolean;

Simple method to download the contents of a webpage to a file.


URLEncode

function URLEncode(S: String): String;

URL encode a string. For example a space character is changed to %20.


URLDecode

function URLDecode(S: String): String;

Inverse of EncodeURLElement.


TInternetSocket.Create

function TInternetSocket.Create(AHost: String; APort: UInt16; UseSSL: Boolean): TInternetSocket; static;

Basic internet socket functionality. The socket is blocking which means Read calls will wait for data to arrive.

Use either ReadWriteTimeout() / HasData() / ReadStringUntil() to avoid hanging.


TInternetSocket.Connect

procedure TInternetSocket.Connect;

Connects to the host and port.


TInternetSocket.Close

procedure TInternetSocket.Close;

Closes the socket


TInternetSocket.HasData

function TInternetSocket.HasData: Boolean;

Returns true if there is data waiting to be read.


TInternetSocket.Read

function TInternetSocket.Read(MaxLen: Integer = 8192): TByteArray;

Read bytes from the socket up to MaxLen bytes.

Note

By default this call is blocking - it will wait until there is data to be read. To change this behavior use ReadWriteTimeout or use HasData.


TInternetSocket.ReadUntil

function TInternetSocket.ReadUntil(Seq: TByteArray; Timeout: Integer): TByteArray;

Reads until the data ends with Seq or Timeout (in milliseconds) is reached. This is useful if you are reading data which is terminated with consistent endings.


TInternetSocket.ReadString

function TInternetSocket.ReadString(MaxLen: Integer = 8192): String;

ReadString a string from the socket up to MaxLen bytes.


TInternetSocket.ReadStringUntil

function TInternetSocket.ReadStringUntil(Seq: String; Timeout: Integer): String;

Reads a string until the data ends with Seq or Timeout (in milliseconds) is reached. This is useful if you are ReadStringing data which is terminated with consistent endings.


TInternetSocket.Write

function TInternetSocket.Write(Data: TByteArray): Integer;

Write bytes to the socket.


TInternetSocket.WriteString

function TInternetSocket.WriteString(Str: String): Integer;

Write a string to the socket.


TInternetSocket.LocalAddress

property TInternetSocket.LocalAddress: String;

TInternetSocket.RemoteAddress

property TInternetSocket.RemoteAddress: String;

TInternetSocket.ReadWriteTimeout

property TInternetSocket.ReadWriteTimeout: Integer
property TInternetSocket.ReadWriteTimeout(Value: Integer)

Timeout (in milliseconds) on Read/Write operations.


TInternetSocket.ConnectTimeout

property TInternetSocket.ConnectTimeout: Integer;
property TInternetSocket.ConnectTimeout(Value: Integer);

Connect timeout (in milliseconds).


TInternetSocket.LastError

property TInternetSocket.LastError: Integer;

Returns the sockets last error code.


TInternetSocketASync.Create

function TInternetSocketASync.Create(AHost: String; APort: UInt16; UseSSL: Boolean): TInternetSocketASync; static;

Internet socket but runs in the background and calls the OnData callback when data arrives.


TInternetSocketASync.OnData

property TInternetSocketASync.OnData: TSocketDataEvent;
property TInternetSocketASync.OnData(Value: TSocketDataEvent);

TInternetSocketASync.OnDisconnect

property TInternetSocketASync.OnDisconnect: TSocketDisconnectEvent;
property TInternetSocketASync.OnDisconnect(Value: TSocketDisconnectEvent);

TInternetSocketASync.Running

property TInternetSocketASync.Running: Boolean;

TInternetSocketServer.Create

function TInternetSocketServer.Create(APort: Integer): TInternetSocketServer;
function TInternetSocketServer.Create(AHost: String; APort: Integer): TInternetSocketServer;

TInternetSocketServer.Start

procedure TInternetSocketServer.Start;

TInternetSocketServer.Stop

procedure TInternetSocketServer.Stop;

TInternetSocketServer.Running

function TInternetSocketServer.Running: Boolean;

TInternetSocketServer.ConnectionCount

property TInternetSocketServer.ConnectionCount: Integer;

TInternetSocketServer.OnHandleClient

property TInternetSocketServer.OnHandleClient: THandleClientEvent;
property TInternetSocketServer.OnHandleClient(Value: THandleClientEvent);

TInternetSocketServer.OnAllowClient

property TInternetSocketServer.OnAllowClient: TAllowClientEvent;
property TInternetSocketServer.OnAllowClient(Value: TAllowClientEvent);

LoadSSL

function LoadSSL(Debug: Boolean = False): Boolean;

Loads SSL. This is automatically done on demand but is useful for debugging errors relating to loading OpenSSL.