.. Generated automatically by doc/tools/makerst.py in Godot's source tree.
.. DO NOT EDIT THIS FILE, but the HTTPRequest.xml source instead.
.. The source is found in doc/classes or modules/<name>/doc_classes.

.. _class_HTTPRequest:

HTTPRequest
===========

**Inherits:** :ref:`Node<class_node>` **<** :ref:`Object<class_object>`

**Category:** Core

Brief Description
-----------------

A node with the ability to send HTTP requests.

Member Functions
----------------

+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void                   | :ref:`cancel_request<class_HTTPRequest_cancel_request>` **(** **)**                                                                                                                                                                                                                                    |
+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>`  | :ref:`get_body_size<class_HTTPRequest_get_body_size>` **(** **)** const                                                                                                                                                                                                                                |
+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>`  | :ref:`get_downloaded_bytes<class_HTTPRequest_get_downloaded_bytes>` **(** **)** const                                                                                                                                                                                                                  |
+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>`  | :ref:`get_http_client_status<class_HTTPRequest_get_http_client_status>` **(** **)** const                                                                                                                                                                                                              |
+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>`  | :ref:`request<class_HTTPRequest_request>` **(** :ref:`String<class_string>` url, :ref:`PoolStringArray<class_poolstringarray>` custom_headers=PoolStringArray(  ), :ref:`bool<class_bool>` ssl_validate_domain=true, :ref:`int<class_int>` method=0, :ref:`String<class_string>` request_data="" **)** |
+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

Signals
-------

.. _class_HTTPRequest_request_completed:

- **request_completed** **(** :ref:`int<class_int>` result, :ref:`int<class_int>` response_code, :ref:`PoolStringArray<class_poolstringarray>` headers, :ref:`PoolByteArray<class_poolbytearray>` body **)**

This signal is emitted upon request completion.


Member Variables
----------------

  .. _class_HTTPRequest_body_size_limit:

- :ref:`int<class_int>` **body_size_limit** - Maximum allowed size for response bodies.

  .. _class_HTTPRequest_download_file:

- :ref:`String<class_string>` **download_file** - The file to download into. Will output any received file into it.

  .. _class_HTTPRequest_max_redirects:

- :ref:`int<class_int>` **max_redirects** - Maximum number of allowed redirects.

  .. _class_HTTPRequest_use_threads:

- :ref:`bool<class_bool>` **use_threads** - If ``true`` multithreading is used to improve performance.


Enums
-----

  .. _enum_HTTPRequest_Result:

enum **Result**

- **RESULT_SUCCESS** = **0** --- Request successful.
- **RESULT_CHUNKED_BODY_SIZE_MISMATCH** = **1**
- **RESULT_CANT_CONNECT** = **2** --- Request failed while connecting.
- **RESULT_CANT_RESOLVE** = **3** --- Request failed while resolving.
- **RESULT_CONNECTION_ERROR** = **4** --- Request failed due to connection(read/write) error.
- **RESULT_SSL_HANDSHAKE_ERROR** = **5** --- Request failed on SSL handshake.
- **RESULT_NO_RESPONSE** = **6** --- Request does not have a response(yet).
- **RESULT_BODY_SIZE_LIMIT_EXCEEDED** = **7** --- Request exceeded its maximum size limit, see :ref:`set_body_size_limit<class_HTTPRequest_set_body_size_limit>`.
- **RESULT_REQUEST_FAILED** = **8** --- Request failed. (Unused)
- **RESULT_DOWNLOAD_FILE_CANT_OPEN** = **9** --- HTTPRequest couldn't open the download file.
- **RESULT_DOWNLOAD_FILE_WRITE_ERROR** = **10** --- HTTPRequest couldn't write to the download file.
- **RESULT_REDIRECT_LIMIT_REACHED** = **11** --- Request reached its maximum redirect limit, see :ref:`set_max_redirects<class_HTTPRequest_set_max_redirects>`.


Description
-----------

A node with the ability to send HTTP requests. Uses :ref:`HTTPClient<class_httpclient>` internally.

Can be used to make HTTP requests, i.e. download or upload files or web content via HTTP.

Member Function Description
---------------------------

.. _class_HTTPRequest_cancel_request:

- void **cancel_request** **(** **)**

Cancels the current request.

.. _class_HTTPRequest_get_body_size:

- :ref:`int<class_int>` **get_body_size** **(** **)** const

Returns the response body length.

.. _class_HTTPRequest_get_downloaded_bytes:

- :ref:`int<class_int>` **get_downloaded_bytes** **(** **)** const

Returns the amount of bytes this HTTPRequest downloaded.

.. _class_HTTPRequest_get_http_client_status:

- :ref:`int<class_int>` **get_http_client_status** **(** **)** const

Returns the current status of the underlying :ref:`HTTPClient<class_httpclient>`. See ``STATUS_*`` enum on :ref:`HTTPClient<class_httpclient>`.

.. _class_HTTPRequest_request:

- :ref:`int<class_int>` **request** **(** :ref:`String<class_string>` url, :ref:`PoolStringArray<class_poolstringarray>` custom_headers=PoolStringArray(  ), :ref:`bool<class_bool>` ssl_validate_domain=true, :ref:`int<class_int>` method=0, :ref:`String<class_string>` request_data="" **)**


