339 lines
11 KiB
XML
339 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="HTTPClient" inherits="Reference" category="Core" version="3.0-alpha">
|
|
<brief_description>
|
|
Hyper-text transfer protocol client.
|
|
</brief_description>
|
|
<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.
|
|
</description>
|
|
<tutorials>
|
|
</tutorials>
|
|
<demos>
|
|
</demos>
|
|
<methods>
|
|
<method name="close">
|
|
<return type="void">
|
|
</return>
|
|
<description>
|
|
Cloces the current connection, allows for reusal of [code]HTTPClient[/code].
|
|
</description>
|
|
</method>
|
|
<method name="connect_to_host">
|
|
<return type="int" enum="Error">
|
|
</return>
|
|
<argument index="0" name="host" type="String">
|
|
</argument>
|
|
<argument index="1" name="port" type="int">
|
|
</argument>
|
|
<argument index="2" name="use_ssl" type="bool" default="false">
|
|
</argument>
|
|
<argument index="3" name="verify_host" type="bool" default="true">
|
|
</argument>
|
|
<description>
|
|
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.
|
|
</description>
|
|
</method>
|
|
<method name="get_connection" qualifiers="const">
|
|
<return type="StreamPeer">
|
|
</return>
|
|
<description>
|
|
Return current connection.
|
|
</description>
|
|
</method>
|
|
<method name="get_response_body_length" qualifiers="const">
|
|
<return type="int">
|
|
</return>
|
|
<description>
|
|
Return the response's body length.
|
|
</description>
|
|
</method>
|
|
<method name="get_response_code" qualifiers="const">
|
|
<return type="int">
|
|
</return>
|
|
<description>
|
|
Return the HTTP status code of the response.
|
|
</description>
|
|
</method>
|
|
<method name="get_response_headers">
|
|
<return type="PoolStringArray">
|
|
</return>
|
|
<description>
|
|
Return the response headers.
|
|
</description>
|
|
</method>
|
|
<method name="get_response_headers_as_dictionary">
|
|
<return type="Dictionary">
|
|
</return>
|
|
<description>
|
|
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)
|
|
</description>
|
|
</method>
|
|
<method name="get_status" qualifiers="const">
|
|
<return type="int" enum="HTTPClient.Status">
|
|
</return>
|
|
<description>
|
|
Returns a STATUS_* enum constant. Need to call [method poll] in order to get status updates.
|
|
</description>
|
|
</method>
|
|
<method name="has_response" qualifiers="const">
|
|
<return type="bool">
|
|
</return>
|
|
<description>
|
|
Return whether this [code]HTTPClient[/code] has a response available.
|
|
</description>
|
|
</method>
|
|
<method name="is_blocking_mode_enabled" qualifiers="const">
|
|
<return type="bool">
|
|
</return>
|
|
<description>
|
|
Return whether blocking mode is enabled.
|
|
</description>
|
|
</method>
|
|
<method name="is_response_chunked" qualifiers="const">
|
|
<return type="bool">
|
|
</return>
|
|
<description>
|
|
Return whether this [code]HTTPClient[/code] has a response that is chunked.
|
|
</description>
|
|
</method>
|
|
<method name="poll">
|
|
<return type="int" enum="Error">
|
|
</return>
|
|
<description>
|
|
This needs to be called in order to have any request processed. Check results with [method get_status]
|
|
</description>
|
|
</method>
|
|
<method name="query_string_from_dict">
|
|
<return type="String">
|
|
</return>
|
|
<argument index="0" name="fields" type="Dictionary">
|
|
</argument>
|
|
<description>
|
|
Generates a GET/POST application/x-www-form-urlencoded style query string from a provided dictionary, e.g.:
|
|
[codeblock]
|
|
var fields = {"username": "user", "password": "pass"}
|
|
String queryString = httpClient.query_string_from_dict(fields)
|
|
returns:= "username=user&password=pass"
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="read_response_body_chunk">
|
|
<return type="PoolByteArray">
|
|
</return>
|
|
<description>
|
|
Reads one chunk from the response.
|
|
</description>
|
|
</method>
|
|
<method name="request">
|
|
<return type="int" enum="Error">
|
|
</return>
|
|
<argument index="0" name="method" type="int" enum="HTTPClient.Method">
|
|
</argument>
|
|
<argument index="1" name="url" type="String">
|
|
</argument>
|
|
<argument index="2" name="headers" type="PoolStringArray">
|
|
</argument>
|
|
<argument index="3" name="body" type="String" default="""">
|
|
</argument>
|
|
<description>
|
|
Sends a request to the connected host. The url is what is normally behind the hostname, i.e. in [code]http://somehost.com/index.php[/code], url would be "index.php".
|
|
Headers are HTTP request headers.
|
|
To create a POST request with query strings to push to the server, do:
|
|
[codeblock]
|
|
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)
|
|
[/codeblock]
|
|
</description>
|
|
</method>
|
|
<method name="request_raw">
|
|
<return type="int" enum="Error">
|
|
</return>
|
|
<argument index="0" name="method" type="int" enum="HTTPClient.Method">
|
|
</argument>
|
|
<argument index="1" name="url" type="String">
|
|
</argument>
|
|
<argument index="2" name="headers" type="PoolStringArray">
|
|
</argument>
|
|
<argument index="3" name="body" type="PoolByteArray">
|
|
</argument>
|
|
<description>
|
|
Sends a raw request to the connected host. The url is what is normally behind the hostname, i.e. in [code]http://somehost.com/index.php[/code], url would be "index.php".
|
|
Headers are HTTP request headers.
|
|
Sends body raw, as a byte array, does not encode it in any way.
|
|
</description>
|
|
</method>
|
|
<method name="set_blocking_mode">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="enabled" type="bool">
|
|
</argument>
|
|
<description>
|
|
If set to true, execution will block until all data is read from the response.
|
|
</description>
|
|
</method>
|
|
<method name="set_connection">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="connection" type="StreamPeer">
|
|
</argument>
|
|
<description>
|
|
Set connection to use, for this client.
|
|
</description>
|
|
</method>
|
|
<method name="set_read_chunk_size">
|
|
<return type="void">
|
|
</return>
|
|
<argument index="0" name="bytes" type="int">
|
|
</argument>
|
|
<description>
|
|
Sets the size of the buffer used and maximum bytes to read per iteration. see [method read_response_body_chunk]
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<constants>
|
|
<constant name="METHOD_GET" value="0">
|
|
</constant>
|
|
<constant name="METHOD_HEAD" value="1">
|
|
</constant>
|
|
<constant name="METHOD_POST" value="2">
|
|
</constant>
|
|
<constant name="METHOD_PUT" value="3">
|
|
</constant>
|
|
<constant name="METHOD_DELETE" value="4">
|
|
</constant>
|
|
<constant name="METHOD_OPTIONS" value="5">
|
|
</constant>
|
|
<constant name="METHOD_TRACE" value="6">
|
|
</constant>
|
|
<constant name="METHOD_CONNECT" value="7">
|
|
</constant>
|
|
<constant name="METHOD_MAX" value="8">
|
|
</constant>
|
|
<constant name="STATUS_DISCONNECTED" value="0">
|
|
</constant>
|
|
<constant name="STATUS_RESOLVING" value="1">
|
|
</constant>
|
|
<constant name="STATUS_CANT_RESOLVE" value="2">
|
|
</constant>
|
|
<constant name="STATUS_CONNECTING" value="3">
|
|
</constant>
|
|
<constant name="STATUS_CANT_CONNECT" value="4">
|
|
</constant>
|
|
<constant name="STATUS_CONNECTED" value="5">
|
|
</constant>
|
|
<constant name="STATUS_REQUESTING" value="6">
|
|
</constant>
|
|
<constant name="STATUS_BODY" value="7">
|
|
</constant>
|
|
<constant name="STATUS_CONNECTION_ERROR" value="8">
|
|
</constant>
|
|
<constant name="STATUS_SSL_HANDSHAKE_ERROR" value="9">
|
|
</constant>
|
|
<constant name="RESPONSE_CONTINUE" value="100">
|
|
</constant>
|
|
<constant name="RESPONSE_SWITCHING_PROTOCOLS" value="101">
|
|
</constant>
|
|
<constant name="RESPONSE_PROCESSING" value="102">
|
|
</constant>
|
|
<constant name="RESPONSE_OK" value="200">
|
|
</constant>
|
|
<constant name="RESPONSE_CREATED" value="201">
|
|
</constant>
|
|
<constant name="RESPONSE_ACCEPTED" value="202">
|
|
</constant>
|
|
<constant name="RESPONSE_NON_AUTHORITATIVE_INFORMATION" value="203">
|
|
</constant>
|
|
<constant name="RESPONSE_NO_CONTENT" value="204">
|
|
</constant>
|
|
<constant name="RESPONSE_RESET_CONTENT" value="205">
|
|
</constant>
|
|
<constant name="RESPONSE_PARTIAL_CONTENT" value="206">
|
|
</constant>
|
|
<constant name="RESPONSE_MULTI_STATUS" value="207">
|
|
</constant>
|
|
<constant name="RESPONSE_IM_USED" value="226">
|
|
</constant>
|
|
<constant name="RESPONSE_MULTIPLE_CHOICES" value="300">
|
|
</constant>
|
|
<constant name="RESPONSE_MOVED_PERMANENTLY" value="301">
|
|
</constant>
|
|
<constant name="RESPONSE_FOUND" value="302">
|
|
</constant>
|
|
<constant name="RESPONSE_SEE_OTHER" value="303">
|
|
</constant>
|
|
<constant name="RESPONSE_NOT_MODIFIED" value="304">
|
|
</constant>
|
|
<constant name="RESPONSE_USE_PROXY" value="305">
|
|
</constant>
|
|
<constant name="RESPONSE_TEMPORARY_REDIRECT" value="307">
|
|
</constant>
|
|
<constant name="RESPONSE_BAD_REQUEST" value="400">
|
|
</constant>
|
|
<constant name="RESPONSE_UNAUTHORIZED" value="401">
|
|
</constant>
|
|
<constant name="RESPONSE_PAYMENT_REQUIRED" value="402">
|
|
</constant>
|
|
<constant name="RESPONSE_FORBIDDEN" value="403">
|
|
</constant>
|
|
<constant name="RESPONSE_NOT_FOUND" value="404">
|
|
</constant>
|
|
<constant name="RESPONSE_METHOD_NOT_ALLOWED" value="405">
|
|
</constant>
|
|
<constant name="RESPONSE_NOT_ACCEPTABLE" value="406">
|
|
</constant>
|
|
<constant name="RESPONSE_PROXY_AUTHENTICATION_REQUIRED" value="407">
|
|
</constant>
|
|
<constant name="RESPONSE_REQUEST_TIMEOUT" value="408">
|
|
</constant>
|
|
<constant name="RESPONSE_CONFLICT" value="409">
|
|
</constant>
|
|
<constant name="RESPONSE_GONE" value="410">
|
|
</constant>
|
|
<constant name="RESPONSE_LENGTH_REQUIRED" value="411">
|
|
</constant>
|
|
<constant name="RESPONSE_PRECONDITION_FAILED" value="412">
|
|
</constant>
|
|
<constant name="RESPONSE_REQUEST_ENTITY_TOO_LARGE" value="413">
|
|
</constant>
|
|
<constant name="RESPONSE_REQUEST_URI_TOO_LONG" value="414">
|
|
</constant>
|
|
<constant name="RESPONSE_UNSUPPORTED_MEDIA_TYPE" value="415">
|
|
</constant>
|
|
<constant name="RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE" value="416">
|
|
</constant>
|
|
<constant name="RESPONSE_EXPECTATION_FAILED" value="417">
|
|
</constant>
|
|
<constant name="RESPONSE_UNPROCESSABLE_ENTITY" value="422">
|
|
</constant>
|
|
<constant name="RESPONSE_LOCKED" value="423">
|
|
</constant>
|
|
<constant name="RESPONSE_FAILED_DEPENDENCY" value="424">
|
|
</constant>
|
|
<constant name="RESPONSE_UPGRADE_REQUIRED" value="426">
|
|
</constant>
|
|
<constant name="RESPONSE_INTERNAL_SERVER_ERROR" value="500">
|
|
</constant>
|
|
<constant name="RESPONSE_NOT_IMPLEMENTED" value="501">
|
|
</constant>
|
|
<constant name="RESPONSE_BAD_GATEWAY" value="502">
|
|
</constant>
|
|
<constant name="RESPONSE_SERVICE_UNAVAILABLE" value="503">
|
|
</constant>
|
|
<constant name="RESPONSE_GATEWAY_TIMEOUT" value="504">
|
|
</constant>
|
|
<constant name="RESPONSE_HTTP_VERSION_NOT_SUPPORTED" value="505">
|
|
</constant>
|
|
<constant name="RESPONSE_INSUFFICIENT_STORAGE" value="507">
|
|
</constant>
|
|
<constant name="RESPONSE_NOT_EXTENDED" value="510">
|
|
</constant>
|
|
</constants>
|
|
</class>
|