HTTPClient¶
Category: Core
Brief Description¶
Hyper-text transfer protocol client.
Member Functions¶
void | close ( ) |
int | connect_to_host ( String host, int port, bool use_ssl=null, bool verify_host=null ) |
StreamPeer | get_connection ( ) const |
int | get_response_body_length ( ) const |
int | get_response_code ( ) const |
PoolStringArray | get_response_headers ( ) |
Dictionary | get_response_headers_as_dictionary ( ) |
int | get_status ( ) const |
bool | has_response ( ) const |
bool | is_blocking_mode_enabled ( ) const |
bool | is_response_chunked ( ) const |
int | poll ( ) |
String | query_string_from_dict ( Dictionary fields ) |
PoolByteArray | read_response_body_chunk ( ) |
int | request ( int method, String url, PoolStringArray headers, String body=null ) |
int | request_raw ( int method, String url, PoolStringArray headers, PoolByteArray body ) |
int | send_body_data ( PoolByteArray body ) |
int | send_body_text ( String body ) |
void | set_blocking_mode ( bool enabled ) |
void | set_connection ( StreamPeer connection ) |
void | set_read_chunk_size ( int bytes ) |
Numeric Constants¶
- METHOD_GET = 0
- METHOD_HEAD = 1
- METHOD_POST = 2
- METHOD_PUT = 3
- METHOD_DELETE = 4
- METHOD_OPTIONS = 5
- METHOD_TRACE = 6
- METHOD_CONNECT = 7
- METHOD_MAX = 8
- STATUS_DISCONNECTED = 0
- STATUS_RESOLVING = 1
- STATUS_CANT_RESOLVE = 2
- STATUS_CONNECTING = 3
- STATUS_CANT_CONNECT = 4
- STATUS_CONNECTED = 5
- STATUS_REQUESTING = 6
- STATUS_BODY = 7
- STATUS_CONNECTION_ERROR = 8
- STATUS_SSL_HANDSHAKE_ERROR = 9
- RESPONSE_CONTINUE = 100
- RESPONSE_SWITCHING_PROTOCOLS = 101
- RESPONSE_PROCESSING = 102
- RESPONSE_OK = 200
- RESPONSE_CREATED = 201
- RESPONSE_ACCEPTED = 202
- RESPONSE_NON_AUTHORITATIVE_INFORMATION = 203
- RESPONSE_NO_CONTENT = 204
- RESPONSE_RESET_CONTENT = 205
- RESPONSE_PARTIAL_CONTENT = 206
- RESPONSE_MULTI_STATUS = 207
- RESPONSE_IM_USED = 226
- RESPONSE_MULTIPLE_CHOICES = 300
- RESPONSE_MOVED_PERMANENTLY = 301
- RESPONSE_FOUND = 302
- RESPONSE_SEE_OTHER = 303
- RESPONSE_NOT_MODIFIED = 304
- RESPONSE_USE_PROXY = 305
- RESPONSE_TEMPORARY_REDIRECT = 307
- RESPONSE_BAD_REQUEST = 400
- RESPONSE_UNAUTHORIZED = 401
- RESPONSE_PAYMENT_REQUIRED = 402
- RESPONSE_FORBIDDEN = 403
- RESPONSE_NOT_FOUND = 404
- RESPONSE_METHOD_NOT_ALLOWED = 405
- RESPONSE_NOT_ACCEPTABLE = 406
- RESPONSE_PROXY_AUTHENTICATION_REQUIRED = 407
- RESPONSE_REQUEST_TIMEOUT = 408
- RESPONSE_CONFLICT = 409
- RESPONSE_GONE = 410
- RESPONSE_LENGTH_REQUIRED = 411
- RESPONSE_PRECONDITION_FAILED = 412
- RESPONSE_REQUEST_ENTITY_TOO_LARGE = 413
- RESPONSE_REQUEST_URI_TOO_LONG = 414
- RESPONSE_UNSUPPORTED_MEDIA_TYPE = 415
- RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE = 416
- RESPONSE_EXPECTATION_FAILED = 417
- RESPONSE_UNPROCESSABLE_ENTITY = 422
- RESPONSE_LOCKED = 423
- RESPONSE_FAILED_DEPENDENCY = 424
- RESPONSE_UPGRADE_REQUIRED = 426
- RESPONSE_INTERNAL_SERVER_ERROR = 500
- RESPONSE_NOT_IMPLEMENTED = 501
- RESPONSE_BAD_GATEWAY = 502
- RESPONSE_SERVICE_UNAVAILABLE = 503
- RESPONSE_GATEWAY_TIMEOUT = 504
- RESPONSE_HTTP_VERSION_NOT_SUPPORTED = 505
- RESPONSE_INSUFFICIENT_STORAGE = 507
- RESPONSE_NOT_EXTENDED = 510
Description¶
Hyper-text transfer protocol client. Supports SSL and SSL server certificate verification.
Can be reused to connect to different hosts and make many requests.
Member Function Description¶
- void close ( )
Cloces the current connection, allows for reusal of HTTPClient.
Connect 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.
verify_host will check the SSL identity of the host if set to true.
- StreamPeer get_connection ( ) const
Return current connection.
- int get_response_body_length ( ) const
Return the response’s body length.
- int get_response_code ( ) const
Return the HTTP status code of the response.
- PoolStringArray get_response_headers ( )
Return the response headers.
- Dictionary get_response_headers_as_dictionary ( )
Returns all response headers as dictionary 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.
Structure: (“key”:”value1; value2”)
Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
- int get_status ( ) const
Returns a STATUS_* enum constant. Need to call poll in order to get status updates.
- bool has_response ( ) const
Return whether this HTTPClient has a response available.
- bool is_blocking_mode_enabled ( ) const
Return whether blocking mode is enabled.
- bool is_response_chunked ( ) const
Return whether this HTTPClient has a response that is chunked.
- int poll ( )
This needs to be called in order to have any request processed. Check results with get_status
- String query_string_from_dict ( Dictionary fields )
Generates a GET/POST application/x-www-form-urlencoded style query string from a provided dictionary, e.g.:
var fields = {"username": "user", "password": "pass"}
String queryString = httpClient.query_string_from_dict(fields)
returns:= "username=user&password=pass"
- PoolByteArray read_response_body_chunk ( )
Reads one chunk from the response.
- int request ( int method, String url, PoolStringArray headers, String body=null )
Sends a request to the connected host. The url is what is normally behind the hostname, i.e. in http://somehost.com/index.php
, url would be “index.php”.
Headers are HTTP request headers.
To create a POST request with query strings to push to the server, do:
var fields = {"username" : "user", "password" : "pass"}
var queryString = httpClient.query_string_from_dict(fields)
var headers = ["Content-Type: application/x-www-form-urlencoded", "Content-Length: " + str(queryString.length())]
var result = httpClient.request(httpClient.METHOD_POST, "index.php", headers, queryString)
- int request_raw ( int method, String url, PoolStringArray headers, PoolByteArray body )
Sends a raw request to the connected host. The url is what is normally behind the hostname, i.e. in http://somehost.com/index.php
, url would be “index.php”.
Headers are HTTP request headers.
Sends body raw, as a byte array, does not encode it in any way.
- int send_body_data ( PoolByteArray body )
Stub function
Stub function
- void set_blocking_mode ( bool enabled )
If set to true, execution will block until all data is read from the response.
- void set_connection ( StreamPeer connection )
Set connection to use, for this client.
- void set_read_chunk_size ( int bytes )
Sets the size of the buffer used and maximum bytes to read per iteration. see read_response_body_chunk