2023-01-05 13:25:55 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**************************************************************************/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*  http_request.h                                                        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**************************************************************************/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                         This file is part of:                          */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                             GODOT ENGINE                               */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                        https://godotengine.org                         */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**************************************************************************/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur.                  */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                                                                        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Permission is hereby granted, free of charge, to any person obtaining  */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* a copy of this software and associated documentation files (the        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* "Software"), to deal in the Software without restriction, including    */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* without limitation the rights to use, copy, modify, merge, publish,    */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* distribute, sublicense, and/or sell copies of the Software, and to     */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* permit persons to whom the Software is furnished to do so, subject to  */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* the following conditions:                                              */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                                                                        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* The above copyright notice and this permission notice shall be         */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* included in all copies or substantial portions of the Software.        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/*                                                                        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,        */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF     */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY   */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,   */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE      */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                 */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**************************************************************************/  
						 
					
						
							
								
									
										
										
										
											2018-01-05 00:50:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-23 23:41:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# ifndef HTTP_REQUEST_H 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define HTTP_REQUEST_H 
  
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-11 18:13:45 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "core/io/http_client.h" 
  
						 
					
						
							
								
									
										
										
										
											2022-07-31 18:02:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "core/io/stream_peer_gzip.h" 
  
						 
					
						
							
								
									
										
										
										
											2018-09-11 18:13:45 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "core/os/thread.h" 
  
						 
					
						
							
								
									
										
										
										
											2021-02-10 19:22:13 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "core/templates/safe_refcount.h" 
  
						 
					
						
							
								
									
										
										
										
											2021-08-12 18:05:59 -05:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# include  "scene/main/node.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  Timer ;  
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  HTTPRequest  :  public  Node  {  
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									GDCLASS ( HTTPRequest ,  Node ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								public :  
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									enum  Result  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RESULT_SUCCESS , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RESULT_CHUNKED_BODY_SIZE_MISMATCH , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RESULT_CANT_CONNECT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RESULT_CANT_RESOLVE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RESULT_CONNECTION_ERROR , 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-07 08:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RESULT_TLS_HANDSHAKE_ERROR , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										RESULT_NO_RESPONSE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RESULT_BODY_SIZE_LIMIT_EXCEEDED , 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-21 01:05:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RESULT_BODY_DECOMPRESS_FAILED , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										RESULT_REQUEST_FAILED , 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-12 10:44:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RESULT_DOWNLOAD_FILE_CANT_OPEN , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RESULT_DOWNLOAD_FILE_WRITE_ERROR , 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-04 16:17:52 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RESULT_REDIRECT_LIMIT_REACHED , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										RESULT_TIMEOUT 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								private :  
						 
					
						
							
								
									
										
										
										
											2021-02-09 18:24:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  requesting  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									String  request_string ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									String  url ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-09 18:24:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  port  =  80 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									Vector < String >  headers ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-09-07 08:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  validate_tls  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bool  use_tls  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-08-31 17:59:09 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									HTTPClient : : Method  method ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-21 01:05:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Vector < uint8_t >  request_data ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-09 18:24:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  request_sent  =  false ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									Ref < HTTPClient >  client ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									PackedByteArray  body ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-10 19:22:13 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									SafeFlag  use_threads ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-09 18:24:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  accept_gzip  =  true ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-09 18:24:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  got_response  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  response_code  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-17 18:06:54 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Vector < String >  response_headers ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-12 10:44:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									String  download_to_file ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 18:02:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Ref < StreamPeerGZIP >  decompressor ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-23 11:08:58 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Ref < FileAccess >  file ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-09 18:24:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  body_len  =  - 1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-10 19:22:13 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									SafeNumeric < int >  downloaded ; 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 18:02:41 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									SafeNumeric < int >  final_body_size ; 
							 
						 
					
						
							
								
									
										
										
										
											2021-02-09 18:24:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  body_size_limit  =  - 1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-09 18:24:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  redirections  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bool  _update_connection ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-09 18:24:36 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  max_redirects  =  8 ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-27 17:49:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									double  timeout  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-04 16:17:52 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  _redirect_request ( const  String  & p_new_url ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-24 16:09:43 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-12 10:44:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  _handle_response ( bool  * ret_value ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Error  _parse_url ( const  String  & p_url ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									Error  _request ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-21 01:05:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									bool  has_header ( const  PackedStringArray  & p_headers ,  const  String  & p_header_name ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									String  get_header_value ( const  PackedStringArray  & p_headers ,  const  String  & header_name ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-02-10 19:22:13 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									SafeFlag  thread_done ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									SafeFlag  thread_request_quit ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-24 16:09:43 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-01-19 13:29:41 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Thread  thread ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-24 16:09:43 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-31 21:56:13 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  _defer_done ( int  p_status ,  int  p_code ,  const  PackedStringArray  & p_headers ,  const  PackedByteArray  & p_data ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-05-21 01:05:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  _request_done ( int  p_status ,  int  p_code ,  const  PackedStringArray  & p_headers ,  const  PackedByteArray  & p_data ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-24 16:09:43 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									static  void  _thread_func ( void  * p_userdata ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-12 10:44:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								protected :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									void  _notification ( int  p_what ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									static  void  _bind_methods ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								public :  
						 
					
						
							
								
									
										
										
										
											2022-09-07 08:25:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Error  request ( const  String  & p_url ,  const  Vector < String >  & p_custom_headers  =  Vector < String > ( ) ,  bool  p_tls_validate_domain  =  true ,  HTTPClient : : Method  p_method  =  HTTPClient : : METHOD_GET ,  const  String  & p_request_data  =  " " ) ;  //connects to a full url and perform request
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									Error  request_raw ( const  String  & p_url ,  const  Vector < String >  & p_custom_headers  =  Vector < String > ( ) ,  bool  p_tls_validate_domain  =  true ,  HTTPClient : : Method  p_method  =  HTTPClient : : METHOD_GET ,  const  Vector < uint8_t >  & p_request_data_raw  =  Vector < uint8_t > ( ) ) ;  //connects to a full url and perform request
 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									void  cancel_request ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									HTTPClient : : Status  get_http_client_status ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									void  set_use_threads ( bool  p_use ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bool  is_using_threads ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-05-21 01:05:32 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  set_accept_gzip ( bool  p_gzip ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									bool  is_accepting_gzip ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-03-05 16:44:50 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  set_download_file ( const  String  & p_file ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2016-03-12 10:44:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									String  get_download_file ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-11-24 13:20:24 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  set_download_chunk_size ( int  p_chunk_size ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  get_download_chunk_size ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									void  set_body_size_limit ( int  p_bytes ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  get_body_size_limit ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									void  set_max_redirects ( int  p_max ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  get_max_redirects ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-04 15:06:57 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									Timer  * timer  =  nullptr ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-04 16:17:52 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-27 17:49:39 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  set_timeout ( double  p_timeout ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									double  get_timeout ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-04 16:17:52 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									void  _timeout ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-12 10:44:12 -03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									int  get_downloaded_bytes ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									int  get_body_size ( )  const ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-12-09 11:34:32 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									void  set_http_proxy ( const  String  & p_host ,  int  p_port ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									void  set_https_proxy ( const  String  & p_host ,  int  p_port ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-04 11:09:45 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									HTTPRequest ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-08-20 17:45:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								VARIANT_ENUM_CAST ( HTTPRequest : : Result ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-23 23:41:51 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif  // HTTP_REQUEST_H