diff --git a/libraries/HTTPClient/src/HTTPClient.cpp b/libraries/HTTPClient/src/HTTPClient.cpp index cc0a31e2b6b..c99c633264e 100644 --- a/libraries/HTTPClient/src/HTTPClient.cpp +++ b/libraries/HTTPClient/src/HTTPClient.cpp @@ -463,6 +463,17 @@ void HTTPClient::setAuthorization(const char * auth) } } +/** + * set the Authorization type for the http request + * @param authType const char * + */ +void HTTPClient::setAuthorizationType(const char * authType) +{ + if(authType) { + _authorizationType = authType; + } +} + /** * set the timeout (ms) for establishing a connection to the server * @param connectTimeout int32_t @@ -1178,7 +1189,9 @@ bool HTTPClient::sendHeader(const char * type) if(_base64Authorization.length()) { _base64Authorization.replace("\n", ""); - header += F("Authorization: Basic "); + header += F("Authorization: "); + header += _authorizationType; + header += " "; header += _base64Authorization; header += "\r\n"; } diff --git a/libraries/HTTPClient/src/HTTPClient.h b/libraries/HTTPClient/src/HTTPClient.h index 1b454e332a9..1bb84d6d6b5 100644 --- a/libraries/HTTPClient/src/HTTPClient.h +++ b/libraries/HTTPClient/src/HTTPClient.h @@ -171,6 +171,7 @@ class HTTPClient void setUserAgent(const String& userAgent); void setAuthorization(const char * user, const char * password); void setAuthorization(const char * auth); + void setAuthorizationType(const char * authType); void setConnectTimeout(int32_t connectTimeout); void setTimeout(uint16_t timeout); @@ -251,6 +252,7 @@ class HTTPClient String _headers; String _userAgent = "ESP32HTTPClient"; String _base64Authorization; + String _authorizationType = "Basic"; /// Response handling RequestArgument* _currentHeaders = nullptr;