2017-09-12 22:42:36 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2019-04-01 12:33:56 +02:00
<class name= "HTTPRequest" inherits= "Node" category= "Core" version= "3.2" >
2017-09-12 22:42:36 +02:00
<brief_description >
2017-12-10 20:32:34 +01:00
A node with the ability to send HTTP requests.
2017-09-12 22:42:36 +02:00
</brief_description>
<description >
2017-12-10 20:32:34 +01:00
A node with the ability to send HTTP requests. Uses [HTTPClient] internally.
Can be used to make HTTP requests, i.e. download or upload files or web content via HTTP.
2017-09-12 22:42:36 +02:00
</description>
<tutorials >
2018-11-05 08:46:27 +01:00
<link > https://docs.godotengine.org/en/latest/tutorials/networking/ssl_certificates.html</link>
2017-09-12 22:42:36 +02:00
</tutorials>
<methods >
<method name= "cancel_request" >
<return type= "void" >
</return>
<description >
2017-12-10 20:32:34 +01:00
Cancels the current request.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_body_size" qualifiers= "const" >
<return type= "int" >
</return>
<description >
2017-12-10 20:32:34 +01:00
Returns the response body length.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_downloaded_bytes" qualifiers= "const" >
<return type= "int" >
</return>
<description >
2017-12-10 20:32:34 +01:00
Returns the amount of bytes this HTTPRequest downloaded.
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "get_http_client_status" qualifiers= "const" >
<return type= "int" enum= "HTTPClient.Status" >
</return>
<description >
2017-12-10 20:32:34 +01:00
Returns the current status of the underlying [HTTPClient]. See [code]STATUS_*[/code] enum on [HTTPClient].
2017-09-12 22:42:36 +02:00
</description>
</method>
<method name= "request" >
<return type= "int" enum= "Error" >
</return>
<argument index= "0" name= "url" type= "String" >
</argument>
<argument index= "1" name= "custom_headers" type= "PoolStringArray" default= "PoolStringArray( )" >
</argument>
<argument index= "2" name= "ssl_validate_domain" type= "bool" default= "true" >
</argument>
<argument index= "3" name= "method" type= "int" enum= "HTTPClient.Method" default= "0" >
</argument>
<argument index= "4" name= "request_data" type= "String" default= """" >
</argument>
<description >
2018-04-20 11:25:06 +02:00
Creates request on the underlying [HTTPClient]. If there is no configuration errors, it tries to connect using [method HTTPClient.connect_to_host] and passes parameters onto [method HTTPClient.request].
2019-06-27 13:24:03 +02:00
Returns [constant OK] if request is successfully created. (Does not imply that the server has responded), [constant ERR_UNCONFIGURED] if not in the tree, [constant ERR_BUSY] if still processing previous request, [constant ERR_INVALID_PARAMETER] if given string is not a valid URL format, or [constant ERR_CANT_CONNECT] if not using thread and the [HTTPClient] cannot connect to host.
2017-09-12 22:42:36 +02:00
</description>
</method>
</methods>
<members >
2019-06-29 12:38:01 +02:00
<member name= "body_size_limit" type= "int" setter= "set_body_size_limit" getter= "get_body_size_limit" default= "-1" >
2017-12-10 20:32:34 +01:00
Maximum allowed size for response bodies.
2017-09-12 22:42:36 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "download_file" type= "String" setter= "set_download_file" getter= "get_download_file" default= """" >
2018-01-11 23:38:35 +01:00
The file to download into. Will output any received file into it.
</member>
2019-06-29 12:38:01 +02:00
<member name= "max_redirects" type= "int" setter= "set_max_redirects" getter= "get_max_redirects" default= "8" >
2017-12-10 20:32:34 +01:00
Maximum number of allowed redirects.
2017-09-12 22:42:36 +02:00
</member>
2019-07-10 16:06:23 +02:00
<member name= "timeout" type= "int" setter= "set_timeout" getter= "get_timeout" default= "0" >
</member>
2019-06-29 12:38:01 +02:00
<member name= "use_threads" type= "bool" setter= "set_use_threads" getter= "is_using_threads" default= "false" >
2018-12-20 13:46:54 +01:00
If [code]true[/code], multithreading is used to improve performance.
2017-09-12 22:42:36 +02:00
</member>
</members>
<signals >
<signal name= "request_completed" >
<argument index= "0" name= "result" type= "int" >
</argument>
<argument index= "1" name= "response_code" type= "int" >
</argument>
<argument index= "2" name= "headers" type= "PoolStringArray" >
</argument>
<argument index= "3" name= "body" type= "PoolByteArray" >
</argument>
<description >
2019-06-22 01:04:47 +02:00
Emitted when a request is completed.
2017-09-12 22:42:36 +02:00
</description>
</signal>
</signals>
<constants >
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_SUCCESS" value= "0" enum= "Result" >
2017-09-12 22:42:36 +02:00
Request successful.
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_CHUNKED_BODY_SIZE_MISMATCH" value= "1" enum= "Result" >
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_CANT_CONNECT" value= "2" enum= "Result" >
2017-09-12 22:42:36 +02:00
Request failed while connecting.
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_CANT_RESOLVE" value= "3" enum= "Result" >
2017-09-12 22:42:36 +02:00
Request failed while resolving.
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_CONNECTION_ERROR" value= "4" enum= "Result" >
2018-12-29 00:17:09 +01:00
Request failed due to connection (read/write) error.
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_SSL_HANDSHAKE_ERROR" value= "5" enum= "Result" >
2017-09-12 22:42:36 +02:00
Request failed on SSL handshake.
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_NO_RESPONSE" value= "6" enum= "Result" >
2018-12-29 00:17:09 +01:00
Request does not have a response (yet).
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_BODY_SIZE_LIMIT_EXCEEDED" value= "7" enum= "Result" >
2018-12-29 00:17:09 +01:00
Request exceeded its maximum size limit, see [member body_size_limit].
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_REQUEST_FAILED" value= "8" enum= "Result" >
2017-12-10 20:32:34 +01:00
Request failed. (Unused)
2017-09-12 22:42:36 +02:00
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_DOWNLOAD_FILE_CANT_OPEN" value= "9" enum= "Result" >
2017-09-12 22:42:36 +02:00
HTTPRequest couldn't open the download file.
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_DOWNLOAD_FILE_WRITE_ERROR" value= "10" enum= "Result" >
2017-09-12 22:42:36 +02:00
HTTPRequest couldn't write to the download file.
</constant>
2017-11-24 23:16:30 +01:00
<constant name= "RESULT_REDIRECT_LIMIT_REACHED" value= "11" enum= "Result" >
2018-12-29 00:17:09 +01:00
Request reached its maximum redirect limit, see [member max_redirects].
2017-09-12 22:42:36 +02:00
</constant>
2019-07-10 16:06:23 +02:00
<constant name= "RESULT_TIMEOUT" value= "12" enum= "Result" >
</constant>
2017-09-12 22:42:36 +02:00
</constants>
</class>