diff --git a/HttpClient.cpp b/HttpClient.cpp index 4e5e10a..39a9ab7 100644 --- a/HttpClient.cpp +++ b/HttpClient.cpp @@ -48,6 +48,7 @@ void HttpClient::resetState() iContentLength = 0; iBodyLengthConsumed = 0; iContentLengthPtr = 0; + iHttpResponseTimeout = kHttpResponseTimeout; } void HttpClient::stop() @@ -311,7 +312,7 @@ int HttpClient::responseStatusCode() const char* statusPtr = statusPrefix; // Whilst we haven't timed out & haven't reached the end of the headers while ((c != '\n') && - ( (millis() - timeoutStart) < kHttpResponseTimeout )) + ( (millis() - timeoutStart) < iHttpResponseTimeout )) { if (available()) { @@ -401,7 +402,7 @@ int HttpClient::skipResponseHeaders() unsigned long timeoutStart = millis(); // Whilst we haven't timed out & haven't reached the end of the headers while ((!endOfHeadersReached()) && - ( (millis() - timeoutStart) < kHttpResponseTimeout )) + ( (millis() - timeoutStart) < iHttpResponseTimeout )) { if (available()) { diff --git a/HttpClient.h b/HttpClient.h index 55ab39b..e7cb624 100644 --- a/HttpClient.h +++ b/HttpClient.h @@ -372,6 +372,8 @@ public: virtual void stop(); virtual uint8_t connected() { return iClient->connected(); }; virtual operator bool() { return bool(iClient); }; + virtual uint32_t httpResponseTimeout() { return iHttpResponseTimeout; }; + virtual void setHttpResponseTimeout(uint32_t timeout) { iHttpResponseTimeout = timeout; }; protected: /** Reset internal state data back to the "just initialised" state */ @@ -434,6 +436,7 @@ protected: // Address of the proxy to use, if we're using one IPAddress iProxyAddress; uint16_t iProxyPort; + uint32_t iHttpResponseTimeout; }; #endif