do not wait for response body when making a HEAD request

This commit is contained in:
Patrick Wuttke 2019-11-15 14:59:49 +01:00
parent 98caeb635c
commit 2cd68a2566
2 changed files with 11 additions and 0 deletions

View file

@ -171,6 +171,7 @@ Error HTTPClient::request_raw(Method p_method, const String &p_url, const Vector
} }
status = STATUS_REQUESTING; status = STATUS_REQUESTING;
head_request = p_method == METHOD_HEAD;
return OK; return OK;
} }
@ -226,6 +227,7 @@ Error HTTPClient::request(Method p_method, const String &p_url, const Vector<Str
} }
status = STATUS_REQUESTING; status = STATUS_REQUESTING;
head_request = p_method == METHOD_HEAD;
return OK; return OK;
} }
@ -267,6 +269,7 @@ void HTTPClient::close() {
connection.unref(); connection.unref();
status = STATUS_DISCONNECTED; status = STATUS_DISCONNECTED;
head_request = false;
if (resolving != IP::RESOLVER_INVALID_ID) { if (resolving != IP::RESOLVER_INVALID_ID) {
IP::get_singleton()->erase_resolve_item(resolving); IP::get_singleton()->erase_resolve_item(resolving);
@ -468,6 +471,12 @@ Error HTTPClient::poll() {
} }
} }
// This is a HEAD request, we wont receive anything.
if (head_request) {
body_size = 0;
body_left = 0;
}
if (body_size != -1 || chunked) { if (body_size != -1 || chunked) {
status = STATUS_BODY; status = STATUS_BODY;
@ -718,6 +727,7 @@ HTTPClient::HTTPClient() {
tcp_connection.instance(); tcp_connection.instance();
resolving = IP::RESOLVER_INVALID_ID; resolving = IP::RESOLVER_INVALID_ID;
status = STATUS_DISCONNECTED; status = STATUS_DISCONNECTED;
head_request = false;
conn_port = -1; conn_port = -1;
body_size = -1; body_size = -1;
chunked = false; chunked = false;

View file

@ -166,6 +166,7 @@ private:
bool ssl_verify_host; bool ssl_verify_host;
bool blocking; bool blocking;
bool handshaking; bool handshaking;
bool head_request;
Vector<uint8_t> response_str; Vector<uint8_t> response_str;