mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-07 16:23:38 +03:00
Handle HEAD requests for static files correctly (#6837)
* Handle HEAD requests for static files correctly * Handle HEAD requests for static files correctly
This commit is contained in:
parent
5aefed2f4b
commit
a738884387
@ -151,10 +151,22 @@ public:
|
|||||||
|
|
||||||
static String urlDecode(const String& text);
|
static String urlDecode(const String& text);
|
||||||
|
|
||||||
|
// Handle a GET request by sending a response header and stream file content to response body
|
||||||
template<typename T>
|
template<typename T>
|
||||||
size_t streamFile(T &file, const String& contentType) {
|
size_t streamFile(T &file, const String& contentType) {
|
||||||
|
return streamFile(file, contentType, HTTP_GET);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Implement GET and HEAD requests for files.
|
||||||
|
// Stream body on HTTP_GET but not on HTTP_HEAD requests.
|
||||||
|
template<typename T>
|
||||||
|
size_t streamFile(T &file, const String& contentType, HTTPMethod requestMethod) {
|
||||||
|
size_t contentLength = 0;
|
||||||
_streamFileCore(file.size(), file.name(), contentType);
|
_streamFileCore(file.size(), file.name(), contentType);
|
||||||
return _currentClient.write(file);
|
if (requestMethod == HTTP_GET) {
|
||||||
|
contentLength = _currentClient.write(file);
|
||||||
|
}
|
||||||
|
return contentLength;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const String responseCodeToString(const int code);
|
static const String responseCodeToString(const int code);
|
||||||
|
@ -76,7 +76,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool canHandle(HTTPMethod requestMethod, String requestUri) override {
|
bool canHandle(HTTPMethod requestMethod, String requestUri) override {
|
||||||
if (requestMethod != HTTP_GET)
|
if ((requestMethod != HTTP_GET) && (requestMethod != HTTP_HEAD))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if ((_isFile && requestUri != _uri) || !requestUri.startsWith(_uri))
|
if ((_isFile && requestUri != _uri) || !requestUri.startsWith(_uri))
|
||||||
@ -125,7 +125,7 @@ public:
|
|||||||
if (_cache_header.length() != 0)
|
if (_cache_header.length() != 0)
|
||||||
server.sendHeader("Cache-Control", _cache_header);
|
server.sendHeader("Cache-Control", _cache_header);
|
||||||
|
|
||||||
server.streamFile(f, contentType);
|
server.streamFile(f, contentType, requestMethod);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user