Merge pull request #33862 from Faless/net/http_request_chunk_size
Add download_chunk_size property to HTTPRequest.
This commit is contained in:
commit
967cc2c014
@ -715,6 +715,10 @@ void HTTPClient::set_read_chunk_size(int p_size) {
|
|||||||
read_chunk_size = p_size;
|
read_chunk_size = p_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int HTTPClient::get_read_chunk_size() const {
|
||||||
|
return read_chunk_size;
|
||||||
|
}
|
||||||
|
|
||||||
HTTPClient::HTTPClient() {
|
HTTPClient::HTTPClient() {
|
||||||
|
|
||||||
tcp_connection.instance();
|
tcp_connection.instance();
|
||||||
@ -818,6 +822,7 @@ void HTTPClient::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("get_response_body_length"), &HTTPClient::get_response_body_length);
|
ClassDB::bind_method(D_METHOD("get_response_body_length"), &HTTPClient::get_response_body_length);
|
||||||
ClassDB::bind_method(D_METHOD("read_response_body_chunk"), &HTTPClient::read_response_body_chunk);
|
ClassDB::bind_method(D_METHOD("read_response_body_chunk"), &HTTPClient::read_response_body_chunk);
|
||||||
ClassDB::bind_method(D_METHOD("set_read_chunk_size", "bytes"), &HTTPClient::set_read_chunk_size);
|
ClassDB::bind_method(D_METHOD("set_read_chunk_size", "bytes"), &HTTPClient::set_read_chunk_size);
|
||||||
|
ClassDB::bind_method(D_METHOD("get_read_chunk_size"), &HTTPClient::get_read_chunk_size);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("set_blocking_mode", "enabled"), &HTTPClient::set_blocking_mode);
|
ClassDB::bind_method(D_METHOD("set_blocking_mode", "enabled"), &HTTPClient::set_blocking_mode);
|
||||||
ClassDB::bind_method(D_METHOD("is_blocking_mode_enabled"), &HTTPClient::is_blocking_mode_enabled);
|
ClassDB::bind_method(D_METHOD("is_blocking_mode_enabled"), &HTTPClient::is_blocking_mode_enabled);
|
||||||
@ -829,6 +834,7 @@ void HTTPClient::_bind_methods() {
|
|||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "blocking_mode_enabled"), "set_blocking_mode", "is_blocking_mode_enabled");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "blocking_mode_enabled"), "set_blocking_mode", "is_blocking_mode_enabled");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "connection", PROPERTY_HINT_RESOURCE_TYPE, "StreamPeer", 0), "set_connection", "get_connection");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "connection", PROPERTY_HINT_RESOURCE_TYPE, "StreamPeer", 0), "set_connection", "get_connection");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "read_chunk_size", PROPERTY_HINT_RANGE, "256,16777216"), "set_read_chunk_size", "get_read_chunk_size");
|
||||||
|
|
||||||
BIND_ENUM_CONSTANT(METHOD_GET);
|
BIND_ENUM_CONSTANT(METHOD_GET);
|
||||||
BIND_ENUM_CONSTANT(METHOD_HEAD);
|
BIND_ENUM_CONSTANT(METHOD_HEAD);
|
||||||
|
@ -220,6 +220,7 @@ public:
|
|||||||
bool is_blocking_mode_enabled() const;
|
bool is_blocking_mode_enabled() const;
|
||||||
|
|
||||||
void set_read_chunk_size(int p_size);
|
void set_read_chunk_size(int p_size);
|
||||||
|
int get_read_chunk_size() const;
|
||||||
|
|
||||||
Error poll();
|
Error poll();
|
||||||
|
|
||||||
|
@ -170,15 +170,6 @@
|
|||||||
Sends the body data raw, as a byte array and does not encode it in any way.
|
Sends the body data raw, as a byte array and does not encode it in any way.
|
||||||
</description>
|
</description>
|
||||||
</method>
|
</method>
|
||||||
<method name="set_read_chunk_size">
|
|
||||||
<return type="void">
|
|
||||||
</return>
|
|
||||||
<argument index="0" name="bytes" type="int">
|
|
||||||
</argument>
|
|
||||||
<description>
|
|
||||||
Sets the size of the buffer used and maximum bytes to read per iteration. See [method read_response_body_chunk].
|
|
||||||
</description>
|
|
||||||
</method>
|
|
||||||
</methods>
|
</methods>
|
||||||
<members>
|
<members>
|
||||||
<member name="blocking_mode_enabled" type="bool" setter="set_blocking_mode" getter="is_blocking_mode_enabled" default="false">
|
<member name="blocking_mode_enabled" type="bool" setter="set_blocking_mode" getter="is_blocking_mode_enabled" default="false">
|
||||||
@ -187,6 +178,9 @@
|
|||||||
<member name="connection" type="StreamPeer" setter="set_connection" getter="get_connection">
|
<member name="connection" type="StreamPeer" setter="set_connection" getter="get_connection">
|
||||||
The connection to use for this client.
|
The connection to use for this client.
|
||||||
</member>
|
</member>
|
||||||
|
<member name="read_chunk_size" type="int" setter="set_read_chunk_size" getter="get_read_chunk_size" default="4096">
|
||||||
|
The size of the buffer used and maximum bytes to read per iteration. See [method read_response_body_chunk].
|
||||||
|
</member>
|
||||||
</members>
|
</members>
|
||||||
<constants>
|
<constants>
|
||||||
<constant name="METHOD_GET" value="0" enum="Method">
|
<constant name="METHOD_GET" value="0" enum="Method">
|
||||||
|
@ -93,6 +93,10 @@
|
|||||||
<member name="body_size_limit" type="int" setter="set_body_size_limit" getter="get_body_size_limit" default="-1">
|
<member name="body_size_limit" type="int" setter="set_body_size_limit" getter="get_body_size_limit" default="-1">
|
||||||
Maximum allowed size for response bodies.
|
Maximum allowed size for response bodies.
|
||||||
</member>
|
</member>
|
||||||
|
<member name="download_chunk_size" type="int" setter="set_download_chunk_size" getter="get_download_chunk_size" default="4096">
|
||||||
|
The size of the buffer used and maximum bytes to read per iteration. See [member HTTPClient.read_chunk_size].
|
||||||
|
Set this to a higher value (e.g. 65536 for 64 KiB) when downloading large files to achieve better speeds at the cost of memory.
|
||||||
|
</member>
|
||||||
<member name="download_file" type="String" setter="set_download_file" getter="get_download_file" default="""">
|
<member name="download_file" type="String" setter="set_download_file" getter="get_download_file" default="""">
|
||||||
The file to download into. Will output any received file into it.
|
The file to download into. Will output any received file into it.
|
||||||
</member>
|
</member>
|
||||||
|
@ -211,6 +211,10 @@ void HTTPClient::set_read_chunk_size(int p_size) {
|
|||||||
read_limit = p_size;
|
read_limit = p_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int HTTPClient::get_read_chunk_size() const {
|
||||||
|
return read_limit;
|
||||||
|
}
|
||||||
|
|
||||||
Error HTTPClient::poll() {
|
Error HTTPClient::poll() {
|
||||||
|
|
||||||
switch (status) {
|
switch (status) {
|
||||||
|
@ -457,6 +457,18 @@ String HTTPRequest::get_download_file() const {
|
|||||||
|
|
||||||
return download_to_file;
|
return download_to_file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HTTPRequest::set_download_chunk_size(int p_chunk_size) {
|
||||||
|
|
||||||
|
ERR_FAIL_COND(get_http_client_status() != HTTPClient::STATUS_DISCONNECTED);
|
||||||
|
|
||||||
|
client->set_read_chunk_size(p_chunk_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
int HTTPRequest::get_download_chunk_size() const {
|
||||||
|
return client->get_read_chunk_size();
|
||||||
|
}
|
||||||
|
|
||||||
HTTPClient::Status HTTPRequest::get_http_client_status() const {
|
HTTPClient::Status HTTPRequest::get_http_client_status() const {
|
||||||
return client->get_status();
|
return client->get_status();
|
||||||
}
|
}
|
||||||
@ -524,9 +536,13 @@ void HTTPRequest::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("set_timeout", "timeout"), &HTTPRequest::set_timeout);
|
ClassDB::bind_method(D_METHOD("set_timeout", "timeout"), &HTTPRequest::set_timeout);
|
||||||
ClassDB::bind_method(D_METHOD("get_timeout"), &HTTPRequest::get_timeout);
|
ClassDB::bind_method(D_METHOD("get_timeout"), &HTTPRequest::get_timeout);
|
||||||
|
|
||||||
|
ClassDB::bind_method(D_METHOD("set_download_chunk_size"), &HTTPRequest::set_download_chunk_size);
|
||||||
|
ClassDB::bind_method(D_METHOD("get_download_chunk_size"), &HTTPRequest::get_download_chunk_size);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("_timeout"), &HTTPRequest::_timeout);
|
ClassDB::bind_method(D_METHOD("_timeout"), &HTTPRequest::_timeout);
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "download_file", PROPERTY_HINT_FILE), "set_download_file", "get_download_file");
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "download_file", PROPERTY_HINT_FILE), "set_download_file", "get_download_file");
|
||||||
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "download_chunk_size", PROPERTY_HINT_RANGE, "256,16777216"), "set_download_chunk_size", "get_download_chunk_size");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_threads"), "set_use_threads", "is_using_threads");
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "use_threads"), "set_use_threads", "is_using_threads");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "body_size_limit", PROPERTY_HINT_RANGE, "-1,2000000000"), "set_body_size_limit", "get_body_size_limit");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "body_size_limit", PROPERTY_HINT_RANGE, "-1,2000000000"), "set_body_size_limit", "get_body_size_limit");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "max_redirects", PROPERTY_HINT_RANGE, "-1,64"), "set_max_redirects", "get_max_redirects");
|
ADD_PROPERTY(PropertyInfo(Variant::INT, "max_redirects", PROPERTY_HINT_RANGE, "-1,64"), "set_max_redirects", "get_max_redirects");
|
||||||
|
@ -126,6 +126,9 @@ public:
|
|||||||
void set_download_file(const String &p_file);
|
void set_download_file(const String &p_file);
|
||||||
String get_download_file() const;
|
String get_download_file() const;
|
||||||
|
|
||||||
|
void set_download_chunk_size(int p_chunk_size);
|
||||||
|
int get_download_chunk_size() const;
|
||||||
|
|
||||||
void set_body_size_limit(int p_bytes);
|
void set_body_size_limit(int p_bytes);
|
||||||
int get_body_size_limit() const;
|
int get_body_size_limit() const;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user