diff --git a/libraries/ESP8266WebServer/keywords.txt b/libraries/ESP8266WebServer/keywords.txt index e68547eb2b..f2a6b0794c 100644 --- a/libraries/ESP8266WebServer/keywords.txt +++ b/libraries/ESP8266WebServer/keywords.txt @@ -43,5 +43,6 @@ hostHeader KEYWORD2 HTTP_GET LITERAL1 HTTP_POST LITERAL1 +HTTP_HEAD LITERAL1 HTTP_ANY LITERAL1 CONTENT_LENGTH_UNKNOWN LITERAL1 diff --git a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp index 2aac608083..49ec13f3e5 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer.cpp @@ -442,6 +442,7 @@ void ESP8266WebServer::send(int code, const String& content_type, const String& } void ESP8266WebServer::sendContent(const String& content) { + if(_currentMethod == HTTP_HEAD){ return; } const char * footer = "\r\n"; size_t len = content.length(); if(_chunked) { @@ -661,6 +662,7 @@ const String ESP8266WebServer::responseCodeToString(const int code) { case 415: return F("Unsupported Media Type"); case 416: return F("Requested range not satisfiable"); case 417: return F("Expectation Failed"); + case 418: return F("I'm a teapot"); case 500: return F("Internal Server Error"); case 501: return F("Not Implemented"); case 502: return F("Bad Gateway"); diff --git a/libraries/ESP8266WebServer/src/ESP8266WebServer.h b/libraries/ESP8266WebServer/src/ESP8266WebServer.h index 10e9a5666f..768988bebc 100644 --- a/libraries/ESP8266WebServer/src/ESP8266WebServer.h +++ b/libraries/ESP8266WebServer/src/ESP8266WebServer.h @@ -28,7 +28,7 @@ #include #include -enum HTTPMethod { HTTP_ANY, HTTP_GET, HTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE, HTTP_OPTIONS }; +enum HTTPMethod { HTTP_ANY, HTTP_GET, HTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE, HTTP_OPTIONS, HTTP_HEAD }; enum HTTPUploadStatus { UPLOAD_FILE_START, UPLOAD_FILE_WRITE, UPLOAD_FILE_END, UPLOAD_FILE_ABORTED }; enum HTTPClientStatus { HC_NONE, HC_WAIT_READ, HC_WAIT_CLOSE }; diff --git a/libraries/ESP8266WebServer/src/Parsing.cpp b/libraries/ESP8266WebServer/src/Parsing.cpp index 9d5ecc012d..70e5b58050 100644 --- a/libraries/ESP8266WebServer/src/Parsing.cpp +++ b/libraries/ESP8266WebServer/src/Parsing.cpp @@ -107,6 +107,8 @@ bool ESP8266WebServer::_parseRequest(WiFiClient& client) { method = HTTP_PUT; } else if (methodStr == F("PATCH")) { method = HTTP_PATCH; + } else if (methodStr == "HEAD") { + method = HTTP_HEAD; } _currentMethod = method;