Struct HTTPClient

Hyper-text transfer protocol client.

struct HTTPClient ;

Hyper-text transfer protocol client (sometimes called "User Agent"). Used to make HTTP requests to download web content, upload files and other data or to communicate with various services, among other use cases. See HTTPRequest for an higher-level alternative. Note: This client only needs to connect to a host once (see connectToHost) to send multiple requests. Because of this, methods that take URLs usually take just the part after the host instead of the full URL, as the client is already connected to a host. See request for a full example and to get started. A HTTPClient should be reused between multiple requests or to connect to different hosts instead of creating one client per request. Supports SSL and SSL server certificate verification. HTTP status codes in the 2xx range indicate success, 3xx redirection (i.e. "try again, but over here"), 4xx something was wrong with the request, and 5xx something went wrong on the server's side. For more information on HTTP, see https://developer.mozilla.org/en-US/docs/Web/HTTP (or read RFC 2616 to get it straight from the source: https://tools.ietf.org/html/rfc2616).

Properties

NameTypeDescription
blockingModeEnabled[get, set] boolIf true, execution will block until all data is read from the response.
connection[get, set] StreamPeerThe connection to use for this client.
readChunkSize[get, set] longThe size of the buffer used and maximum bytes to read per iteration. See readResponseBodyChunk.

Methods

NameDescription
close Closes the current connection, allowing reuse of this HTTPClient.
connectToHost Connects to a host. This needs to be done before any requests are sent. The host should not have http:// prepended but will strip the protocol identifier if provided. If no port is specified (or -1 is used), it is automatically set to 80 for HTTP and 443 for HTTPS (if use_ssl is enabled). verify_host will check the SSL identity of the host if set to true.
getConnection
getReadChunkSize
getResponseBodyLength Returns the response's body length. Note: Some Web servers may not send a body length. In this case, the value returned will be -1. If using chunked transfer encoding, the body length will also be -1.
getResponseCode Returns the response's HTTP status code.
getResponseHeaders Returns the response headers.
getResponseHeadersAsDictionary Returns all response headers as a Dictionary of structure { "key": "value1; value2" } where the case-sensitivity of the keys and values is kept like the server delivers it. A value is a simple String, this string can have more than one value where "; " is used as separator. Example:
getStatus Returns a status constant. Need to call poll in order to get status updates.
hasResponse If true, this HTTPClient has a response available.
isBlockingModeEnabled
isResponseChunked If true, this HTTPClient has a response that is chunked.
poll This needs to be called in order to have any request processed. Check results with getStatus.
queryStringFromDict Generates a GET/POST application/x-www-form-urlencoded style query string from a provided dictionary, e.g.:
readResponseBodyChunk Reads one chunk from the response.
request Sends a request to the connected host. The URL parameter is just the part after the host, so for http://somehost.com/index.php, it is index.php. Headers are HTTP request headers. For available HTTP methods, see method. To create a POST request with query strings to push to the server, do:
requestRaw Sends a raw request to the connected host. The URL parameter is just the part after the host, so for http://somehost.com/index.php, it is index.php. Headers are HTTP request headers. For available HTTP methods, see method. Sends the body data raw, as a byte array and does not encode it in any way.
setBlockingMode
setConnection
setReadChunkSize

Enums

NameDescription
Constants
Method
ResponseCode
Status