#ifndef HTTPCONSTANTS_H #define HTTPCONSTANTS_H 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 HTTP_CODE {UNDEFINED_CODE, _100, _101, _200, _400, _401, _403, _404, _405, _500, _501}; static char *httpVersionToString(HttpVersion v, char *buffer) { if(buffer == NULL)return NULL; switch(v) { 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")); break; case HttpVersion::HTTP_1_0: strcpy_P(buffer, PSTR("HTTP/1.0")); break; case HttpVersion::HTTP_2_0: strcpy_P(buffer, PSTR("HTTP/2.0")); break; default: strcpy_P(buffer, PSTR("HTTP/1.1")); break; } return buffer; } static char *httpMIMETypeToString(HttpMIMEType m, char *buffer) { if(buffer == NULL)return NULL; switch(m) { case HttpMIMEType::TEXT_PLAIN: sprintf_P(buffer, PSTR("text/plain")); break; case HttpMIMEType::APPLICATION_JSON: sprintf_P(buffer, PSTR("application/json")); break; case HttpMIMEType::APPLICATION_X_WWW_FORM_URLENCODED: sprintf_P(buffer, PSTR("application/x-www-form-urlencoded")); break; default: sprintf_P(buffer, PSTR("text/plain")); break; } return buffer; } static HTTP_CODE numberToHTTP_CODE(uint32_t code) { switch(code) { case 100: return HTTP_CODE::_100; case 101: return HTTP_CODE::_101; case 200: return HTTP_CODE::_200; case 400: return HTTP_CODE::_400; case 401: return HTTP_CODE::_401; case 403: return HTTP_CODE::_403; case 404: return HTTP_CODE::_404; case 405: return HTTP_CODE::_405; case 500: return HTTP_CODE::_500; case 501: return HTTP_CODE::_501; default : return HTTP_CODE::UNDEFINED_CODE; } } protected: private: }; #endif//HTTPCONSTANTS_H