adding function to request a certain http header

master
Steffen Pohle 1 month ago
parent 0c958326c6
commit 58447b8170

@ -1,5 +1,8 @@
Version 0.4:
=============
2026-04-17:
- adding function to request a certain headline
2026-04-16:
- base64encode and base64decode implemented

@ -60,6 +60,8 @@ class WebRequestBuffer {
std::string GetProtocolVersion() { return protocol_version; };
int GetRequestCmdObj(std::string *cmd, std::string *obj, JSONParse *jp);
std::string GetCookie(std::string name);
std::string GetHeader(std::string name);
std::list<WebHeaderLine> GetHeaders();
};

@ -28,11 +28,20 @@ class SimpleWebServer : public WebServer {
int SimpleWebServer::HandleRequest (WebRequestBuffer *requestbuffer, WebServerClient *webclient) {
if (requestbuffer == NULL || webclient == NULL) return 0;
if (requestbuffer == NULL || webclient == NULL) return 0;
std::string request = requestbuffer->GetRequest();
printf ("SimpleWebServerClient::HandleRequest() Request:%s\n", request.c_str());
debug ("Recived Headers");
std::list<WebHeaderLine> hl;
std::list<WebHeaderLine>::iterator il;
std::string s;
hl = requestbuffer->GetHeaders();
for (il = hl.begin(); il != hl.end(); il++) {
debug ("'%s' -> '%s' ", il->parameter.c_str(), requestbuffer->GetHeader(il->parameter).c_str());
}
if (request.compare ("/") == 0) request = "/index.html";
if (request.find("/big.html") != std::string::npos) {
std::string htmlfile = GenerateBigHtmlFile(8*1024*1024);

@ -212,3 +212,23 @@ std::string WebRequestBuffer::GetCookie(std::string name) {
};
std::string WebRequestBuffer::GetHeader(std::string name) {
std::list<WebHeaderLine>::iterator il;
std::size_t i;
std::string s;
//
// search for coockie line
for (il = headerlines.begin(); il != headerlines.end(); il++) {
if ((string_to_lower(il->parameter).compare(string_to_lower(name)) == 0) ||
(string_to_lower(il->parameter).compare(string_to_lower(name) + ':') == 0)) {
return il->value;
}
}
return "";
};
std::list<WebHeaderLine> WebRequestBuffer::GetHeaders() {
return headerlines;
};

Loading…
Cancel
Save