class_httpclient.rst 21 KB

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