Added new mime types to string as well as simplified the httpMIMETypeToString method

This commit is contained in:
anschrammh 2022-04-05 20:57:56 +02:00
parent 7f08d8a838
commit 4c7fc2ea2a

View File

@ -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: