class_httpclient.rst 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the doc/base/classes.xml source instead.
  3. .. _class_HTTPClient:
  4. HTTPClient
  5. ==========
  6. **Inherits:** :ref:`Reference<class_reference>` **<** :ref:`Object<class_object>`
  7. **Category:** Core
  8. Brief Description
  9. -----------------
  10. Hyper-text transfer protocol client.
  11. Member Functions
  12. ----------------
  13. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  14. | void | :ref:`close<class_HTTPClient_close>` **(** **)** |
  15. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  16. | Error | :ref:`connect<class_HTTPClient_connect>` **(** :ref:`String<class_string>` host, :ref:`int<class_int>` port, :ref:`bool<class_bool>` use_ssl=false, :ref:`bool<class_bool>` verify_host=true **)** |
  17. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  18. | :ref:`StreamPeer<class_streampeer>` | :ref:`get_connection<class_HTTPClient_get_connection>` **(** **)** const |
  19. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  20. | :ref:`int<class_int>` | :ref:`get_response_body_length<class_HTTPClient_get_response_body_length>` **(** **)** const |
  21. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  22. | :ref:`int<class_int>` | :ref:`get_response_code<class_HTTPClient_get_response_code>` **(** **)** const |
  23. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  24. | :ref:`StringArray<class_stringarray>` | :ref:`get_response_headers<class_HTTPClient_get_response_headers>` **(** **)** |
  25. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  26. | :ref:`Dictionary<class_dictionary>` | :ref:`get_response_headers_as_dictionary<class_HTTPClient_get_response_headers_as_dictionary>` **(** **)** |
  27. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  28. | :ref:`int<class_int>` | :ref:`get_status<class_HTTPClient_get_status>` **(** **)** const |
  29. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  30. | :ref:`bool<class_bool>` | :ref:`has_response<class_HTTPClient_has_response>` **(** **)** const |
  31. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  32. | :ref:`bool<class_bool>` | :ref:`is_blocking_mode_enabled<class_HTTPClient_is_blocking_mode_enabled>` **(** **)** const |
  33. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  34. | :ref:`bool<class_bool>` | :ref:`is_response_chunked<class_HTTPClient_is_response_chunked>` **(** **)** const |
  35. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  36. | Error | :ref:`poll<class_HTTPClient_poll>` **(** **)** |
  37. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  38. | :ref:`String<class_string>` | :ref:`query_string_from_dict<class_HTTPClient_query_string_from_dict>` **(** :ref:`Dictionary<class_dictionary>` fields **)** |
  39. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  40. | :ref:`RawArray<class_rawarray>` | :ref:`read_response_body_chunk<class_HTTPClient_read_response_body_chunk>` **(** **)** |
  41. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | :ref:`int<class_int>` | :ref:`request<class_HTTPClient_request>` **(** :ref:`int<class_int>` method, :ref:`String<class_string>` url, :ref:`StringArray<class_stringarray>` headers, :ref:`String<class_string>` body="" **)** |
  43. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | :ref:`int<class_int>` | :ref:`request_raw<class_HTTPClient_request_raw>` **(** :ref:`int<class_int>` method, :ref:`String<class_string>` url, :ref:`StringArray<class_stringarray>` headers, :ref:`RawArray<class_rawarray>` body **)** |
  45. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`int<class_int>` | :ref:`send_body_data<class_HTTPClient_send_body_data>` **(** :ref:`RawArray<class_rawarray>` body **)** |
  47. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`int<class_int>` | :ref:`send_body_text<class_HTTPClient_send_body_text>` **(** :ref:`String<class_string>` body **)** |
  49. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | void | :ref:`set_blocking_mode<class_HTTPClient_set_blocking_mode>` **(** :ref:`bool<class_bool>` enabled **)** |
  51. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | void | :ref:`set_connection<class_HTTPClient_set_connection>` **(** :ref:`StreamPeer<class_streampeer>` connection **)** |
  53. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | void | :ref:`set_read_chunk_size<class_HTTPClient_set_read_chunk_size>` **(** :ref:`int<class_int>` bytes **)** |
  55. +----------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  56. Numeric Constants
  57. -----------------
  58. - **METHOD_GET** = **0**
  59. - **METHOD_HEAD** = **1**
  60. - **METHOD_POST** = **2**
  61. - **METHOD_PUT** = **3**
  62. - **METHOD_DELETE** = **4**
  63. - **METHOD_OPTIONS** = **5**
  64. - **METHOD_TRACE** = **6**
  65. - **METHOD_CONNECT** = **7**
  66. - **METHOD_MAX** = **8**
  67. - **STATUS_DISCONNECTED** = **0**
  68. - **STATUS_RESOLVING** = **1**
  69. - **STATUS_CANT_RESOLVE** = **2**
  70. - **STATUS_CONNECTING** = **3**
  71. - **STATUS_CANT_CONNECT** = **4**
  72. - **STATUS_CONNECTED** = **5**
  73. - **STATUS_REQUESTING** = **6**
  74. - **STATUS_BODY** = **7**
  75. - **STATUS_CONNECTION_ERROR** = **8**
  76. - **STATUS_SSL_HANDSHAKE_ERROR** = **9**
  77. - **RESPONSE_CONTINUE** = **100**
  78. - **RESPONSE_SWITCHING_PROTOCOLS** = **101**
  79. - **RESPONSE_PROCESSING** = **102**
  80. - **RESPONSE_OK** = **200**
  81. - **RESPONSE_CREATED** = **201**
  82. - **RESPONSE_ACCEPTED** = **202**
  83. - **RESPONSE_NON_AUTHORITATIVE_INFORMATION** = **203**
  84. - **RESPONSE_NO_CONTENT** = **204**
  85. - **RESPONSE_RESET_CONTENT** = **205**
  86. - **RESPONSE_PARTIAL_CONTENT** = **206**
  87. - **RESPONSE_MULTI_STATUS** = **207**
  88. - **RESPONSE_IM_USED** = **226**
  89. - **RESPONSE_MULTIPLE_CHOICES** = **300**
  90. - **RESPONSE_MOVED_PERMANENTLY** = **301**
  91. - **RESPONSE_FOUND** = **302**
  92. - **RESPONSE_SEE_OTHER** = **303**
  93. - **RESPONSE_NOT_MODIFIED** = **304**
  94. - **RESPONSE_USE_PROXY** = **305**
  95. - **RESPONSE_TEMPORARY_REDIRECT** = **307**
  96. - **RESPONSE_BAD_REQUEST** = **400**
  97. - **RESPONSE_UNAUTHORIZED** = **401**
  98. - **RESPONSE_PAYMENT_REQUIRED** = **402**
  99. - **RESPONSE_FORBIDDEN** = **403**
  100. - **RESPONSE_NOT_FOUND** = **404**
  101. - **RESPONSE_METHOD_NOT_ALLOWED** = **405**
  102. - **RESPONSE_NOT_ACCEPTABLE** = **406**
  103. - **RESPONSE_PROXY_AUTHENTICATION_REQUIRED** = **407**
  104. - **RESPONSE_REQUEST_TIMEOUT** = **408**
  105. - **RESPONSE_CONFLICT** = **409**
  106. - **RESPONSE_GONE** = **410**
  107. - **RESPONSE_LENGTH_REQUIRED** = **411**
  108. - **RESPONSE_PRECONDITION_FAILED** = **412**
  109. - **RESPONSE_REQUEST_ENTITY_TOO_LARGE** = **413**
  110. - **RESPONSE_REQUEST_URI_TOO_LONG** = **414**
  111. - **RESPONSE_UNSUPPORTED_MEDIA_TYPE** = **415**
  112. - **RESPONSE_REQUESTED_RANGE_NOT_SATISFIABLE** = **416**
  113. - **RESPONSE_EXPECTATION_FAILED** = **417**
  114. - **RESPONSE_UNPROCESSABLE_ENTITY** = **422**
  115. - **RESPONSE_LOCKED** = **423**
  116. - **RESPONSE_FAILED_DEPENDENCY** = **424**
  117. - **RESPONSE_UPGRADE_REQUIRED** = **426**
  118. - **RESPONSE_INTERNAL_SERVER_ERROR** = **500**
  119. - **RESPONSE_NOT_IMPLEMENTED** = **501**
  120. - **RESPONSE_BAD_GATEWAY** = **502**
  121. - **RESPONSE_SERVICE_UNAVAILABLE** = **503**
  122. - **RESPONSE_GATEWAY_TIMEOUT** = **504**
  123. - **RESPONSE_HTTP_VERSION_NOT_SUPPORTED** = **505**
  124. - **RESPONSE_INSUFFICIENT_STORAGE** = **507**
  125. - **RESPONSE_NOT_EXTENDED** = **510**
  126. Description
  127. -----------
  128. Hyper-text transfer protocol client. Supports SSL and SSL server certificate verification.
  129. Can be reused to connect to different hosts and make many requests.
  130. Member Function Description
  131. ---------------------------
  132. .. _class_HTTPClient_close:
  133. - void **close** **(** **)**
  134. Cloces the current connection, allows for reusal of :ref:`HTTPClient<class_httpclient>`.
  135. .. _class_HTTPClient_connect:
  136. - Error **connect** **(** :ref:`String<class_string>` host, :ref:`int<class_int>` port, :ref:`bool<class_bool>` use_ssl=false, :ref:`bool<class_bool>` verify_host=true **)**
  137. Connect to a host. This needs to be done before any requests are sent.
  138. The host should not have http:// prepended but will strip the protocol identifier if provided.
  139. verify_host will check the SSL identity of the host if set to true.
  140. .. _class_HTTPClient_get_connection:
  141. - :ref:`StreamPeer<class_streampeer>` **get_connection** **(** **)** const
  142. Return current connection.
  143. .. _class_HTTPClient_get_response_body_length:
  144. - :ref:`int<class_int>` **get_response_body_length** **(** **)** const
  145. Return the response's body length.
  146. .. _class_HTTPClient_get_response_code:
  147. - :ref:`int<class_int>` **get_response_code** **(** **)** const
  148. Return the HTTP status code of the response.
  149. .. _class_HTTPClient_get_response_headers:
  150. - :ref:`StringArray<class_stringarray>` **get_response_headers** **(** **)**
  151. Return the response headers.
  152. .. _class_HTTPClient_get_response_headers_as_dictionary:
  153. - :ref:`Dictionary<class_dictionary>` **get_response_headers_as_dictionary** **(** **)**
  154. 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.
  155. Structure: ("key":"value1; value2")
  156. Example: (content-length:12), (Content-Type:application/json; charset=UTF-8)
  157. .. _class_HTTPClient_get_status:
  158. - :ref:`int<class_int>` **get_status** **(** **)** const
  159. Returns a STATUS\_\* enum constant. Need to call :ref:`poll<class_HTTPClient_poll>` in order to get status updates.
  160. .. _class_HTTPClient_has_response:
  161. - :ref:`bool<class_bool>` **has_response** **(** **)** const
  162. Return whether this :ref:`HTTPClient<class_httpclient>` has a response available.
  163. .. _class_HTTPClient_is_blocking_mode_enabled:
  164. - :ref:`bool<class_bool>` **is_blocking_mode_enabled** **(** **)** const
  165. Return whether blocking mode is enabled.
  166. .. _class_HTTPClient_is_response_chunked:
  167. - :ref:`bool<class_bool>` **is_response_chunked** **(** **)** const
  168. Return whether this :ref:`HTTPClient<class_httpclient>` has a response that is chunked.
  169. .. _class_HTTPClient_poll:
  170. - Error **poll** **(** **)**
  171. This needs to be called in order to have any request processed. Check results with :ref:`get_status<class_HTTPClient_get_status>`
  172. .. _class_HTTPClient_query_string_from_dict:
  173. - :ref:`String<class_string>` **query_string_from_dict** **(** :ref:`Dictionary<class_dictionary>` fields **)**
  174. Generates a GET/POST application/x-www-form-urlencoded style query string from a provided dictionary, e.g.:
  175. ::
  176. var fields = {"username": "user", "password": "pass"}
  177. String queryString = httpClient.query_string_from_dict(fields)
  178. returns:= "username=user&password=pass"
  179. .. _class_HTTPClient_read_response_body_chunk:
  180. - :ref:`RawArray<class_rawarray>` **read_response_body_chunk** **(** **)**
  181. Reads one chunk from the response.
  182. .. _class_HTTPClient_request:
  183. - :ref:`int<class_int>` **request** **(** :ref:`int<class_int>` method, :ref:`String<class_string>` url, :ref:`StringArray<class_stringarray>` headers, :ref:`String<class_string>` body="" **)**
  184. 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".
  185. Headers are HTTP request headers.
  186. To create a POST request with query strings to push to the server, do:
  187. ::
  188. var fields = {"username" : "user", "password" : "pass"}
  189. var queryString = httpClient.query_string_from_dict(fields)
  190. var headers = ["Content-Type: application/x-www-form-urlencoded", "Content-Length: " + str(queryString.length())]
  191. var result = httpClient.request(httpClient.METHOD_POST, "index.php", headers, queryString)
  192. .. _class_HTTPClient_request_raw:
  193. - :ref:`int<class_int>` **request_raw** **(** :ref:`int<class_int>` method, :ref:`String<class_string>` url, :ref:`StringArray<class_stringarray>` headers, :ref:`RawArray<class_rawarray>` body **)**
  194. 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".
  195. Headers are HTTP request headers.
  196. Sends body raw, as a byte array, does not encode it in any way.
  197. .. _class_HTTPClient_send_body_data:
  198. - :ref:`int<class_int>` **send_body_data** **(** :ref:`RawArray<class_rawarray>` body **)**
  199. Stub function
  200. .. _class_HTTPClient_send_body_text:
  201. - :ref:`int<class_int>` **send_body_text** **(** :ref:`String<class_string>` body **)**
  202. Stub function
  203. .. _class_HTTPClient_set_blocking_mode:
  204. - void **set_blocking_mode** **(** :ref:`bool<class_bool>` enabled **)**
  205. If set to true, execution will block until all data is read from the response.
  206. .. _class_HTTPClient_set_connection:
  207. - void **set_connection** **(** :ref:`StreamPeer<class_streampeer>` connection **)**
  208. Set connection to use, for this client.
  209. .. _class_HTTPClient_set_read_chunk_size:
  210. - void **set_read_chunk_size** **(** :ref:`int<class_int>` bytes **)**
  211. Sets the size of the buffer used and maximum bytes to read per iteration. see :ref:`read_response_body_chunk<class_HTTPClient_read_response_body_chunk>`