diff --git a/src/HttpClient.cpp b/src/HttpClient.cpp index 1c73464..dd20c78 100644 --- a/src/HttpClient.cpp +++ b/src/HttpClient.cpp @@ -6,7 +6,6 @@ #include "b64.h" // Initialize constants -const char* HttpClient::kUserAgent = "Arduino/2.2.0"; const char* HttpClient::kContentLengthPrefix = HTTP_HEADER_CONTENT_LENGTH ": "; const char* HttpClient::kTransferEncodingChunked = HTTP_HEADER_TRANSFER_ENCODING ": " HTTP_HEADER_VALUE_CHUNKED; @@ -29,6 +28,11 @@ HttpClient::HttpClient(Client& aClient, const IPAddress& aServerAddress, uint16_ resetState(); } +void HttpClient::setUserAgent(const String &userAgent) +{ + iUserAgent = userAgent; +} + void HttpClient::resetState() { iState = eIdle; @@ -169,7 +173,7 @@ int HttpClient::sendInitialHeaders(const char* aURLPath, const char* aHttpMethod iClient->println(); } // And user-agent string - sendHeader(HTTP_HEADER_USER_AGENT, kUserAgent); + sendHeader(HTTP_HEADER_USER_AGENT, iUserAgent); } if (iConnectionClose) diff --git a/src/HttpClient.h b/src/HttpClient.h index 6a7aa1d..5c7151a 100644 --- a/src/HttpClient.h +++ b/src/HttpClient.h @@ -43,7 +43,6 @@ class HttpClient : public Client public: static const int kNoContentLengthHeader =-1; static const int kHttpPort =80; - static const char* kUserAgent; // FIXME Write longer API request, using port and user-agent, example // FIXME Update tempToPachube example to calculate Content-Length correctly @@ -52,6 +51,8 @@ class HttpClient : public Client HttpClient(Client& aClient, const String& aServerName, uint16_t aServerPort = kHttpPort); HttpClient(Client& aClient, const IPAddress& aServerAddress, uint16_t aServerPort = kHttpPort); + void setUserAgent(const String& userAgent); + /** Start a more complex request. Use this when you need to send additional headers in the request, but you will also need to call endRequest() when you are finished. @@ -387,6 +388,7 @@ class HttpClient : public Client bool iConnectionClose; bool iSendDefaultRequestHeaders; String iHeaderLine; + String iUserAgent = "Arduino/2.2.0"; }; #endif