1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

Merge pull request #1312 from denvera/master

Allow setting TCP timeout
This commit is contained in:
Markus 2015-12-27 20:09:34 +01:00
commit 304bf08497
2 changed files with 16 additions and 3 deletions

View File

@ -50,6 +50,7 @@ HTTPClient::HTTPClient() {
_returnCode = 0;
_size = -1;
_canReuse = false;
_tcpTimeout = HTTPCLIENT_DEFAULT_TCP_TIMEOUT;
}
@ -252,6 +253,17 @@ void HTTPClient::setAuthorization(const char * auth) {
}
}
/**
* set the timeout for the TCP connection
* @param timeout unsigned int
*/
void HTTPClient::setTimeout(uint16_t timeout) {
_tcpTimeout = timeout;
if(connected()) {
_tcp->setTimeout(timeout);
}
}
/**
* send a GET request
* @return http code
@ -673,7 +685,7 @@ bool HTTPClient::connect(void) {
}
// set Timeout for readBytesUntil and readStringUntil
_tcp->setTimeout(HTTPCLIENT_TCP_TIMEOUT);
_tcp->setTimeout(_tcpTimeout);
#ifdef ESP8266
_tcp->setNoDelay(true);

View File

@ -31,7 +31,7 @@
#define DEBUG_HTTPCLIENT(...)
#endif
#define HTTPCLIENT_TCP_TIMEOUT (1000)
#define HTTPCLIENT_DEFAULT_TCP_TIMEOUT (1000)
/// HTTP client errors
#define HTTPC_ERROR_CONNECTION_REFUSED (-1)
@ -127,6 +127,7 @@ class HTTPClient {
void setUserAgent(const char * userAgent);
void setAuthorization(const char * user, const char * password);
void setAuthorization(const char * auth);
void setTimeout(uint16_t timeout);
/// request handling
int GET();
@ -170,7 +171,7 @@ class HTTPClient {
String _host;
uint16_t _port;
bool _reuse;
uint16_t _tcpTimeout;
String _url;
bool _https;