class_httprequest.rst 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the HTTPRequest.xml source instead.
  3. .. The source is found in doc/classes or modules/<name>/doc_classes.
  4. .. _class_HTTPRequest:
  5. HTTPRequest
  6. ===========
  7. **Inherits:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  8. **Category:** Core
  9. Brief Description
  10. -----------------
  11. A node with the ability to send HTTP requests.
  12. Properties
  13. ----------
  14. +-----------------------------+--------------------------------------------------------------------+
  15. | :ref:`int<class_int>` | :ref:`body_size_limit<class_HTTPRequest_property_body_size_limit>` |
  16. +-----------------------------+--------------------------------------------------------------------+
  17. | :ref:`String<class_String>` | :ref:`download_file<class_HTTPRequest_property_download_file>` |
  18. +-----------------------------+--------------------------------------------------------------------+
  19. | :ref:`int<class_int>` | :ref:`max_redirects<class_HTTPRequest_property_max_redirects>` |
  20. +-----------------------------+--------------------------------------------------------------------+
  21. | :ref:`bool<class_bool>` | :ref:`use_threads<class_HTTPRequest_property_use_threads>` |
  22. +-----------------------------+--------------------------------------------------------------------+
  23. Methods
  24. -------
  25. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  26. | void | :ref:`cancel_request<class_HTTPRequest_method_cancel_request>` **(** **)** |
  27. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  28. | :ref:`int<class_int>` | :ref:`get_body_size<class_HTTPRequest_method_get_body_size>` **(** **)** const |
  29. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  30. | :ref:`int<class_int>` | :ref:`get_downloaded_bytes<class_HTTPRequest_method_get_downloaded_bytes>` **(** **)** const |
  31. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  32. | :ref:`Status<enum_HTTPClient_Status>` | :ref:`get_http_client_status<class_HTTPRequest_method_get_http_client_status>` **(** **)** const |
  33. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  34. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`request<class_HTTPRequest_method_request>` **(** :ref:`String<class_String>` url, :ref:`PoolStringArray<class_PoolStringArray>` custom_headers=PoolStringArray( ), :ref:`bool<class_bool>` ssl_validate_domain=true, :ref:`Method<enum_HTTPClient_Method>` method=0, :ref:`String<class_String>` request_data="" **)** |
  35. +---------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  36. Signals
  37. -------
  38. .. _class_HTTPRequest_signal_request_completed:
  39. - **request_completed** **(** :ref:`int<class_int>` result, :ref:`int<class_int>` response_code, :ref:`PoolStringArray<class_PoolStringArray>` headers, :ref:`PoolByteArray<class_PoolByteArray>` body **)**
  40. This signal is emitted upon request completion.
  41. Enumerations
  42. ------------
  43. .. _enum_HTTPRequest_Result:
  44. .. _class_HTTPRequest_constant_RESULT_SUCCESS:
  45. .. _class_HTTPRequest_constant_RESULT_CHUNKED_BODY_SIZE_MISMATCH:
  46. .. _class_HTTPRequest_constant_RESULT_CANT_CONNECT:
  47. .. _class_HTTPRequest_constant_RESULT_CANT_RESOLVE:
  48. .. _class_HTTPRequest_constant_RESULT_CONNECTION_ERROR:
  49. .. _class_HTTPRequest_constant_RESULT_SSL_HANDSHAKE_ERROR:
  50. .. _class_HTTPRequest_constant_RESULT_NO_RESPONSE:
  51. .. _class_HTTPRequest_constant_RESULT_BODY_SIZE_LIMIT_EXCEEDED:
  52. .. _class_HTTPRequest_constant_RESULT_REQUEST_FAILED:
  53. .. _class_HTTPRequest_constant_RESULT_DOWNLOAD_FILE_CANT_OPEN:
  54. .. _class_HTTPRequest_constant_RESULT_DOWNLOAD_FILE_WRITE_ERROR:
  55. .. _class_HTTPRequest_constant_RESULT_REDIRECT_LIMIT_REACHED:
  56. enum **Result**:
  57. - **RESULT_SUCCESS** = **0** --- Request successful.
  58. - **RESULT_CHUNKED_BODY_SIZE_MISMATCH** = **1**
  59. - **RESULT_CANT_CONNECT** = **2** --- Request failed while connecting.
  60. - **RESULT_CANT_RESOLVE** = **3** --- Request failed while resolving.
  61. - **RESULT_CONNECTION_ERROR** = **4** --- Request failed due to connection (read/write) error.
  62. - **RESULT_SSL_HANDSHAKE_ERROR** = **5** --- Request failed on SSL handshake.
  63. - **RESULT_NO_RESPONSE** = **6** --- Request does not have a response (yet).
  64. - **RESULT_BODY_SIZE_LIMIT_EXCEEDED** = **7** --- Request exceeded its maximum size limit, see :ref:`body_size_limit<class_HTTPRequest_property_body_size_limit>`.
  65. - **RESULT_REQUEST_FAILED** = **8** --- Request failed. (Unused)
  66. - **RESULT_DOWNLOAD_FILE_CANT_OPEN** = **9** --- HTTPRequest couldn't open the download file.
  67. - **RESULT_DOWNLOAD_FILE_WRITE_ERROR** = **10** --- HTTPRequest couldn't write to the download file.
  68. - **RESULT_REDIRECT_LIMIT_REACHED** = **11** --- Request reached its maximum redirect limit, see :ref:`max_redirects<class_HTTPRequest_property_max_redirects>`.
  69. Description
  70. -----------
  71. A node with the ability to send HTTP requests. Uses :ref:`HTTPClient<class_HTTPClient>` internally.
  72. Can be used to make HTTP requests, i.e. download or upload files or web content via HTTP.
  73. Tutorials
  74. ---------
  75. - :doc:`../tutorials/networking/ssl_certificates`
  76. Property Descriptions
  77. ---------------------
  78. .. _class_HTTPRequest_property_body_size_limit:
  79. - :ref:`int<class_int>` **body_size_limit**
  80. +----------+----------------------------+
  81. | *Setter* | set_body_size_limit(value) |
  82. +----------+----------------------------+
  83. | *Getter* | get_body_size_limit() |
  84. +----------+----------------------------+
  85. Maximum allowed size for response bodies.
  86. .. _class_HTTPRequest_property_download_file:
  87. - :ref:`String<class_String>` **download_file**
  88. +----------+--------------------------+
  89. | *Setter* | set_download_file(value) |
  90. +----------+--------------------------+
  91. | *Getter* | get_download_file() |
  92. +----------+--------------------------+
  93. The file to download into. Will output any received file into it.
  94. .. _class_HTTPRequest_property_max_redirects:
  95. - :ref:`int<class_int>` **max_redirects**
  96. +----------+--------------------------+
  97. | *Setter* | set_max_redirects(value) |
  98. +----------+--------------------------+
  99. | *Getter* | get_max_redirects() |
  100. +----------+--------------------------+
  101. Maximum number of allowed redirects.
  102. .. _class_HTTPRequest_property_use_threads:
  103. - :ref:`bool<class_bool>` **use_threads**
  104. +----------+------------------------+
  105. | *Setter* | set_use_threads(value) |
  106. +----------+------------------------+
  107. | *Getter* | is_using_threads() |
  108. +----------+------------------------+
  109. If ``true``, multithreading is used to improve performance.
  110. Method Descriptions
  111. -------------------
  112. .. _class_HTTPRequest_method_cancel_request:
  113. - void **cancel_request** **(** **)**
  114. Cancels the current request.
  115. .. _class_HTTPRequest_method_get_body_size:
  116. - :ref:`int<class_int>` **get_body_size** **(** **)** const
  117. Returns the response body length.
  118. .. _class_HTTPRequest_method_get_downloaded_bytes:
  119. - :ref:`int<class_int>` **get_downloaded_bytes** **(** **)** const
  120. Returns the amount of bytes this HTTPRequest downloaded.
  121. .. _class_HTTPRequest_method_get_http_client_status:
  122. - :ref:`Status<enum_HTTPClient_Status>` **get_http_client_status** **(** **)** const
  123. Returns the current status of the underlying :ref:`HTTPClient<class_HTTPClient>`. See ``STATUS_*`` enum on :ref:`HTTPClient<class_HTTPClient>`.
  124. .. _class_HTTPRequest_method_request:
  125. - :ref:`Error<enum_@GlobalScope_Error>` **request** **(** :ref:`String<class_String>` url, :ref:`PoolStringArray<class_PoolStringArray>` custom_headers=PoolStringArray( ), :ref:`bool<class_bool>` ssl_validate_domain=true, :ref:`Method<enum_HTTPClient_Method>` method=0, :ref:`String<class_String>` request_data="" **)**
  126. Creates request on the underlying :ref:`HTTPClient<class_HTTPClient>`. If there is no configuration errors, it tries to connect using :ref:`HTTPClient.connect_to_host<class_HTTPClient_method_connect_to_host>` and passes parameters onto :ref:`HTTPClient.request<class_HTTPClient_method_request>`.
  127. Returns ``OK`` if request is successfully created. (Does not imply that the server has responded), ``ERR_UNCONFIGURED`` if not in the tree, ``ERR_BUSY`` if still processing previous request, ``ERR_INVALID_PARAMETER`` if given string is not a valid URL format, or ``ERR_CANT_CONNECT`` if not using thread and the :ref:`HTTPClient<class_HTTPClient>` cannot connect to host.