X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/f27c218d18ebf7198e07249aca1eed625da914fd..913bfb3f1238e29dfcc564fd1d4c836dbd412227:/Server/include/plaqui/server/httprequest.h diff --git a/Server/include/plaqui/server/httprequest.h b/Server/include/plaqui/server/httprequest.h index a5a3647..7b43f67 100644 --- a/Server/include/plaqui/server/httprequest.h +++ b/Server/include/plaqui/server/httprequest.h @@ -30,6 +30,7 @@ #include "plaqui/server/httperror.h" #include "plaqui/server/httpmessage.h" +#include #include #include #include @@ -41,6 +42,7 @@ namespace Server { /// Pedido HTTP. class HTTPRequest: public HTTPMessage { + ///////////////////////////////////////////////////////////////////// // Constantes. protected: @@ -72,6 +74,7 @@ namespace Server { /// Caracteres no hexa para URIs (RFC 2396). static const std::string CHARS_HEX; + ///////////////////////////////////////////////////////////////////// // Tipos. public: @@ -79,6 +82,7 @@ namespace Server { /// Tipo de métodos HTTP reconocidos. typedef enum {GET, POST} HTTPMethod; + ///////////////////////////////////////////////////////////////////// // Atributos. protected: // TODO hacer privados con get() y set() ??? @@ -95,6 +99,7 @@ namespace Server { /// Query string. std::string query; + ///////////////////////////////////////////////////////////////////// // Métodos. public: @@ -110,19 +115,25 @@ namespace Server { HTTPRequest(const std::string& uri = "/", const HTTPMethod& method = GET, const std::string& query = "", + const std::string& body = "", const std::string& version = "1.1"); + /** + * Obtiene el método como un string. + */ + std::string method_str(void) const; + /** * Obtiene los datos del pedido HTTP desde un texto. */ friend std::istream& operator>>(std::istream& is, HTTPRequest& req) - throw(HTTPError, std::ios::failure); + throw(HTTPError, sockerr, std::ios::failure); /** * Convierte el pedido HTTP en texto. */ friend std::ostream& operator<<(std::ostream& os, - const HTTPRequest& req); + const HTTPRequest& req) throw(sockerr); };