HTTPClient¶
Category: Core
Brief Description¶
Hyper-text transfer protocol client.
Member Functions¶
void |
close ( ) |
Error |
connect ( String host, int port, bool use_ssl=false, bool verify_host=true ) |
get_connection ( ) const |
|
get_response_body_length ( ) const |
|
get_response_code ( ) const |
|
get_status ( ) const |
|
has_response ( ) const |
|
is_blocking_mode_enabled ( ) const |
|
is_response_chunked ( ) const |
|
Error |
poll ( ) |
query_string_from_dict ( Dictionary fields ) |
|
request ( int method, String url, StringArray headers, String body=”” ) |
|
request_raw ( int method, String url, StringArray headers, RawArray body ) |
|
send_body_data ( RawArray body ) |
|
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.
StringArray 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.
Error 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"
RawArray read_response_body_chunk ( )
Reads one chunk from the response.
int request ( int method, String url, StringArray headers, String body=”” )
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, StringArray headers, RawArray 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.
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