From 4c7fc2ea2acf1a0f6f75baa363927337947754e0 Mon Sep 17 00:00:00 2001 From: anschrammh Date: Tue, 5 Apr 2022 20:57:56 +0200 Subject: [PATCH] Added new mime types to string as well as simplified the httpMIMETypeToString method --- src/app/HttpConstants.h | 65 ++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 23 deletions(-) diff --git a/src/app/HttpConstants.h b/src/app/HttpConstants.h index 37636d5..80ed2f9 100644 --- a/src/app/HttpConstants.h +++ b/src/app/HttpConstants.h @@ -1,12 +1,24 @@ #ifndef HTTPCONSTANTS_H #define HTTPCONSTANTS_H +#define HTTPCONSTANTS_STRING //PSTR + class HttpConstants { public: enum HttpRequestMethod {UNDEFINED, GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH}; enum HttpVersion {UNKNOWN, HTTP_0_9, HTTP_1_1, HTTP_1_0, HTTP_2_0}; - enum HttpMIMEType {UNKNOWN_MIME, TEXT_PLAIN, TEXT_CSS, TEXT_HTML, TEXT_JAVASCRIPT, APPLICATION_JSON, APPLICATION_X_WWW_FORM_URLENCODED, IMAGE_PNG, IMAGE_JPEG, AUDIO_MPEG, APPLICATION_OCTET_STREAM}; + enum HttpMIMEType { UNKNOWN_MIME, + TEXT_PLAIN, + TEXT_CSS, + TEXT_HTML, + TEXT_JAVASCRIPT, + APPLICATION_JSON, + APPLICATION_X_WWW_FORM_URLENCODED, + IMAGE_PNG, + IMAGE_JPEG, + AUDIO_MPEG, + APPLICATION_OCTET_STREAM}; enum HTTP_CODE { UNDEFINED_CODE = 0, HTTP_CODE_CONTINUE = 100, @@ -69,53 +81,60 @@ class HttpConstants HTTP_CODE_NETWORK_AUTHENTICATION_REQUIRED = 511 }; - static char *httpVersionToString(HttpVersion v, char *buffer) + static const char *httpVersionToString(HttpVersion version) { - if(buffer == NULL)return NULL; - - switch(v) + switch(version) { case HttpVersion::HTTP_0_9: - strcpy_P(buffer, PSTR("HTTP/0.9")); - break; - case HttpVersion::HTTP_1_1: - strcpy_P(buffer, PSTR("HTTP/1.1")); + return HTTPCONSTANTS_STRING("HTTP/0.9"); break; case HttpVersion::HTTP_1_0: - strcpy_P(buffer, PSTR("HTTP/1.0")); + return HTTPCONSTANTS_STRING("HTTP/1.0"); break; case HttpVersion::HTTP_2_0: - strcpy_P(buffer, PSTR("HTTP/2.0")); + return HTTPCONSTANTS_STRING("HTTP/2.0"); break; default: - strcpy_P(buffer, PSTR("HTTP/1.1")); + return HTTPCONSTANTS_STRING("HTTP/1.1"); break; } - - return buffer; } - static char *httpMIMETypeToString(HttpMIMEType m, char *buffer) + static const char *httpMIMETypeToString(HttpMIMEType m) { - if(buffer == NULL)return NULL; - switch(m) { case HttpMIMEType::TEXT_PLAIN: - sprintf_P(buffer, PSTR("text/plain")); + return HTTPCONSTANTS_STRING("text/plain"); + break; + case HttpMIMEType::TEXT_CSS: + return HTTPCONSTANTS_STRING("text/css"); + break; + case HttpMIMEType::TEXT_HTML: + return HTTPCONSTANTS_STRING("text/html"); + break; + case HttpMIMEType::TEXT_JAVASCRIPT: + return HTTPCONSTANTS_STRING("text/javascript"); break; case HttpMIMEType::APPLICATION_JSON: - sprintf_P(buffer, PSTR("application/json")); + return HTTPCONSTANTS_STRING("application/json"); break; case HttpMIMEType::APPLICATION_X_WWW_FORM_URLENCODED: - sprintf_P(buffer, PSTR("application/x-www-form-urlencoded")); + return HTTPCONSTANTS_STRING("application/x-www-form-urlencoded"); + break; + case HttpMIMEType::IMAGE_PNG: + return HTTPCONSTANTS_STRING("image/png"); + break; + case HttpMIMEType::IMAGE_JPEG: + return HTTPCONSTANTS_STRING("image/jpeg"); + break; + case HttpMIMEType::AUDIO_MPEG: + return HTTPCONSTANTS_STRING("audio/mpeg"); break; default: - sprintf_P(buffer, PSTR("text/plain")); + return HTTPCONSTANTS_STRING("application/octet-stream"); break; } - - return buffer; } protected: