Commit 49a45721a8c41345adc5790d313ddab15bdbd76a
Committed by
Moritz Wirger
1 parent
44465090
Refactor HttpHandler to inherit from abstract IHttpHandler class, so it can be mocked for testing
Showing
3 changed files
with
169 additions
and
21 deletions
hueplusplus/HttpHandler.cpp
| @@ -37,7 +37,7 @@ class SocketCloser { | @@ -37,7 +37,7 @@ class SocketCloser { | ||
| 37 | private: int s; | 37 | private: int s; |
| 38 | }; | 38 | }; |
| 39 | 39 | ||
| 40 | -std::string HttpHandler::send(const std::string & msg, const std::string & adr, int port) | 40 | +std::string HttpHandler::send(const std::string & msg, const std::string & adr, int port) const |
| 41 | { | 41 | { |
| 42 | // create socket | 42 | // create socket |
| 43 | int socketFD = socket(AF_INET, SOCK_STREAM, 0); | 43 | int socketFD = socket(AF_INET, SOCK_STREAM, 0); |
| @@ -126,7 +126,7 @@ std::string HttpHandler::send(const std::string & msg, const std::string & adr, | @@ -126,7 +126,7 @@ std::string HttpHandler::send(const std::string & msg, const std::string & adr, | ||
| 126 | return response; | 126 | return response; |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | -std::string HttpHandler::sendGetHTTPBody(const std::string & msg, const std::string & adr, int port) | 129 | +std::string HttpHandler::sendGetHTTPBody(const std::string & msg, const std::string & adr, int port) const |
| 130 | { | 130 | { |
| 131 | std::string response = send(msg, adr, port); | 131 | std::string response = send(msg, adr, port); |
| 132 | size_t start = response.find("\r\n\r\n"); | 132 | size_t start = response.find("\r\n\r\n"); |
| @@ -139,7 +139,7 @@ std::string HttpHandler::sendGetHTTPBody(const std::string & msg, const std::str | @@ -139,7 +139,7 @@ std::string HttpHandler::sendGetHTTPBody(const std::string & msg, const std::str | ||
| 139 | return response; | 139 | return response; |
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | -std::vector<std::string> HttpHandler::sendMulticast(const std::string & msg, const std::string & adr, int port, int timeout) | 142 | +std::vector<std::string> HttpHandler::sendMulticast(const std::string & msg, const std::string & adr, int port, int timeout) const |
| 143 | { | 143 | { |
| 144 | hostent *server; // host information | 144 | hostent *server; // host information |
| 145 | sockaddr_in server_addr; // server address | 145 | sockaddr_in server_addr; // server address |
| @@ -218,7 +218,7 @@ std::vector<std::string> HttpHandler::sendMulticast(const std::string & msg, con | @@ -218,7 +218,7 @@ std::vector<std::string> HttpHandler::sendMulticast(const std::string & msg, con | ||
| 218 | return returnString; | 218 | return returnString; |
| 219 | } | 219 | } |
| 220 | 220 | ||
| 221 | -std::string HttpHandler::sendHTTPRequest(std::string method, std::string uri, std::string content_type, std::string body, const std::string &adr, int port) | 221 | +std::string HttpHandler::sendHTTPRequest(std::string method, std::string uri, std::string content_type, std::string body, const std::string &adr, int port) const |
| 222 | { | 222 | { |
| 223 | std::string request; | 223 | std::string request; |
| 224 | // Protocol reference: https://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html | 224 | // Protocol reference: https://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html |
| @@ -244,23 +244,23 @@ std::string HttpHandler::sendHTTPRequest(std::string method, std::string uri, st | @@ -244,23 +244,23 @@ std::string HttpHandler::sendHTTPRequest(std::string method, std::string uri, st | ||
| 244 | return sendGetHTTPBody(request.c_str(), adr, port); | 244 | return sendGetHTTPBody(request.c_str(), adr, port); |
| 245 | } | 245 | } |
| 246 | 246 | ||
| 247 | -std::string HttpHandler::GETString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port) | 247 | +std::string HttpHandler::GETString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port) const |
| 248 | { | 248 | { |
| 249 | return sendHTTPRequest("GET", uri, content_type, body, adr, port); | 249 | return sendHTTPRequest("GET", uri, content_type, body, adr, port); |
| 250 | } | 250 | } |
| 251 | 251 | ||
| 252 | -std::string HttpHandler::POSTString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port) | 252 | +std::string HttpHandler::POSTString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port) const |
| 253 | { | 253 | { |
| 254 | return sendHTTPRequest("POST", uri, content_type, body, adr, port); | 254 | return sendHTTPRequest("POST", uri, content_type, body, adr, port); |
| 255 | } | 255 | } |
| 256 | 256 | ||
| 257 | -std::string HttpHandler::PUTString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port) | 257 | +std::string HttpHandler::PUTString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port) const |
| 258 | { | 258 | { |
| 259 | return sendHTTPRequest("PUT", uri, content_type, body, adr, port); | 259 | return sendHTTPRequest("PUT", uri, content_type, body, adr, port); |
| 260 | } | 260 | } |
| 261 | 261 | ||
| 262 | //! \todo Get rid of duplicate code in GETJson, POSTJson and PUTJson | 262 | //! \todo Get rid of duplicate code in GETJson, POSTJson and PUTJson |
| 263 | -Json::Value HttpHandler::GETJson(std::string uri, const Json::Value& body, const std::string &adr, int port) | 263 | +Json::Value HttpHandler::GETJson(std::string uri, const Json::Value& body, const std::string &adr, int port) const |
| 264 | { | 264 | { |
| 265 | std::string response = GETString(uri, "application/json", body.toStyledString(), adr, port); | 265 | std::string response = GETString(uri, "application/json", body.toStyledString(), adr, port); |
| 266 | 266 | ||
| @@ -277,7 +277,7 @@ Json::Value HttpHandler::GETJson(std::string uri, const Json::Value& body, const | @@ -277,7 +277,7 @@ Json::Value HttpHandler::GETJson(std::string uri, const Json::Value& body, const | ||
| 277 | return result; | 277 | return result; |
| 278 | } | 278 | } |
| 279 | 279 | ||
| 280 | -Json::Value HttpHandler::POSTJson(std::string uri, const Json::Value& body, const std::string &adr, int port) | 280 | +Json::Value HttpHandler::POSTJson(std::string uri, const Json::Value& body, const std::string &adr, int port) const |
| 281 | { | 281 | { |
| 282 | std::string response = POSTString(uri, "application/json", body.toStyledString(), adr, port); | 282 | std::string response = POSTString(uri, "application/json", body.toStyledString(), adr, port); |
| 283 | 283 | ||
| @@ -294,7 +294,7 @@ Json::Value HttpHandler::POSTJson(std::string uri, const Json::Value& body, cons | @@ -294,7 +294,7 @@ Json::Value HttpHandler::POSTJson(std::string uri, const Json::Value& body, cons | ||
| 294 | return result; | 294 | return result; |
| 295 | } | 295 | } |
| 296 | 296 | ||
| 297 | -Json::Value HttpHandler::PUTJson(std::string uri, const Json::Value& body, const std::string &adr, int port) | 297 | +Json::Value HttpHandler::PUTJson(std::string uri, const Json::Value& body, const std::string &adr, int port) const |
| 298 | { | 298 | { |
| 299 | std::string response = PUTString(uri, "application/json", body.toStyledString(), adr, port); | 299 | std::string response = PUTString(uri, "application/json", body.toStyledString(), adr, port); |
| 300 | 300 |
hueplusplus/include/HttpHandler.h
| @@ -24,9 +24,10 @@ | @@ -24,9 +24,10 @@ | ||
| 24 | #include <vector> | 24 | #include <vector> |
| 25 | 25 | ||
| 26 | #include "json/json.h" | 26 | #include "json/json.h" |
| 27 | +#include "IHttpHandler.h" | ||
| 27 | 28 | ||
| 28 | //! Class to handle http requests and multicast requests | 29 | //! Class to handle http requests and multicast requests |
| 29 | -class HttpHandler | 30 | +class HttpHandler : public IHttpHandler |
| 30 | { | 31 | { |
| 31 | public: | 32 | public: |
| 32 | //! \brief Function that sends a given message to the specified host and returns the response. | 33 | //! \brief Function that sends a given message to the specified host and returns the response. |
| @@ -36,7 +37,7 @@ public: | @@ -36,7 +37,7 @@ public: | ||
| 36 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | 37 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" |
| 37 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | 38 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 |
| 38 | //! \return String containing the response of the host | 39 | //! \return String containing the response of the host |
| 39 | - std::string send(const std::string &msg, const std::string &adr, int port=80); | 40 | + std::string send(const std::string &msg, const std::string &adr, int port=80) const; |
| 40 | 41 | ||
| 41 | //! \brief Function that sends a given message to the specified host and returns the body of the response. | 42 | //! \brief Function that sends a given message to the specified host and returns the body of the response. |
| 42 | //! | 43 | //! |
| @@ -46,7 +47,7 @@ public: | @@ -46,7 +47,7 @@ public: | ||
| 46 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | 47 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" |
| 47 | //! \param port Optional integer that specifies the port to which the request is sent. Default is 80 | 48 | //! \param port Optional integer that specifies the port to which the request is sent. Default is 80 |
| 48 | //! \return String containing the body of the response of the host | 49 | //! \return String containing the body of the response of the host |
| 49 | - std::string sendGetHTTPBody(const std::string &msg, const std::string &adr, int port = 80); | 50 | + std::string sendGetHTTPBody(const std::string &msg, const std::string &adr, int port = 80) const; |
| 50 | 51 | ||
| 51 | //! \brief Function that sends a multicast request with the specified message. | 52 | //! \brief Function that sends a multicast request with the specified message. |
| 52 | //! | 53 | //! |
| @@ -56,7 +57,7 @@ public: | @@ -56,7 +57,7 @@ public: | ||
| 56 | //! \param port Optional integer that specifies the port to which the request is sent. Default is 1900 | 57 | //! \param port Optional integer that specifies the port to which the request is sent. Default is 1900 |
| 57 | //! \param timeout Optional Integer that specifies the timeout of the request in seconds. Default is 5 | 58 | //! \param timeout Optional Integer that specifies the timeout of the request in seconds. Default is 5 |
| 58 | //! \return Vector containing strings of each answer received | 59 | //! \return Vector containing strings of each answer received |
| 59 | - std::vector<std::string> sendMulticast(const std::string &msg, const std::string &adr = "239.255.255.250", int port = 1900, int timeout = 5); | 60 | + std::vector<std::string> sendMulticast(const std::string &msg, const std::string &adr = "239.255.255.250", int port = 1900, int timeout = 5) const; |
| 60 | 61 | ||
| 61 | //! \brief Function that sends a HTTP request with the given method to the specified host and returns the body of the response. | 62 | //! \brief Function that sends a HTTP request with the given method to the specified host and returns the body of the response. |
| 62 | //! | 63 | //! |
| @@ -69,7 +70,7 @@ public: | @@ -69,7 +70,7 @@ public: | ||
| 69 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | 70 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" |
| 70 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | 71 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 |
| 71 | //! \return String containing the body of the response of the host | 72 | //! \return String containing the body of the response of the host |
| 72 | - std::string sendHTTPRequest(std::string method, std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80); | 73 | + std::string sendHTTPRequest(std::string method, std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80) const; |
| 73 | 74 | ||
| 74 | //! \brief Function that sends a HTTP GET request to the specified host and returns the body of the response. | 75 | //! \brief Function that sends a HTTP GET request to the specified host and returns the body of the response. |
| 75 | //! | 76 | //! |
| @@ -81,7 +82,7 @@ public: | @@ -81,7 +82,7 @@ public: | ||
| 81 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | 82 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" |
| 82 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | 83 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 |
| 83 | //! \return String containing the body of the response of the host | 84 | //! \return String containing the body of the response of the host |
| 84 | - std::string GETString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80); | 85 | + std::string GETString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80) const; |
| 85 | 86 | ||
| 86 | //! \brief Function that sends a HTTP POST request to the specified host and returns the body of the response. | 87 | //! \brief Function that sends a HTTP POST request to the specified host and returns the body of the response. |
| 87 | //! | 88 | //! |
| @@ -93,7 +94,7 @@ public: | @@ -93,7 +94,7 @@ public: | ||
| 93 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | 94 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" |
| 94 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | 95 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 |
| 95 | //! \return String containing the body of the response of the host | 96 | //! \return String containing the body of the response of the host |
| 96 | - std::string POSTString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80); | 97 | + std::string POSTString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80) const; |
| 97 | 98 | ||
| 98 | //! \brief Function that sends a HTTP PUT request to the specified host and returns the body of the response. | 99 | //! \brief Function that sends a HTTP PUT request to the specified host and returns the body of the response. |
| 99 | //! | 100 | //! |
| @@ -105,7 +106,7 @@ public: | @@ -105,7 +106,7 @@ public: | ||
| 105 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | 106 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" |
| 106 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | 107 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 |
| 107 | //! \return String containing the body of the response of the host | 108 | //! \return String containing the body of the response of the host |
| 108 | - std::string PUTString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80); | 109 | + std::string PUTString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80) const; |
| 109 | 110 | ||
| 110 | //! \brief Function that sends a HTTP GET request to the specified host and returns the body of the response. | 111 | //! \brief Function that sends a HTTP GET request to the specified host and returns the body of the response. |
| 111 | //! | 112 | //! |
| @@ -116,7 +117,7 @@ public: | @@ -116,7 +117,7 @@ public: | ||
| 116 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | 117 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" |
| 117 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | 118 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 |
| 118 | //! \return Json::Value containing the parsed body of the response of the host | 119 | //! \return Json::Value containing the parsed body of the response of the host |
| 119 | - Json::Value GETJson(std::string uri, const Json::Value& body, const std::string &adr, int port=80); | 120 | + Json::Value GETJson(std::string uri, const Json::Value& body, const std::string &adr, int port=80) const; |
| 120 | 121 | ||
| 121 | //! \brief Function that sends a HTTP POST request to the specified host and returns the body of the response. | 122 | //! \brief Function that sends a HTTP POST request to the specified host and returns the body of the response. |
| 122 | //! | 123 | //! |
| @@ -127,7 +128,7 @@ public: | @@ -127,7 +128,7 @@ public: | ||
| 127 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | 128 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" |
| 128 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | 129 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 |
| 129 | //! \return Json::Value containing the parsed body of the response of the host | 130 | //! \return Json::Value containing the parsed body of the response of the host |
| 130 | - Json::Value POSTJson(std::string uri, const Json::Value& body, const std::string &adr, int port=80); | 131 | + Json::Value POSTJson(std::string uri, const Json::Value& body, const std::string &adr, int port=80) const; |
| 131 | 132 | ||
| 132 | //! \brief Function that sends a HTTP PUT request to the specified host and returns the body of the response. | 133 | //! \brief Function that sends a HTTP PUT request to the specified host and returns the body of the response. |
| 133 | //! | 134 | //! |
| @@ -138,7 +139,7 @@ public: | @@ -138,7 +139,7 @@ public: | ||
| 138 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | 139 | //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" |
| 139 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | 140 | //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 |
| 140 | //! \return Json::Value containing the parsed body of the response of the host | 141 | //! \return Json::Value containing the parsed body of the response of the host |
| 141 | - Json::Value PUTJson(std::string uri, const Json::Value& body, const std::string &adr, int port=80); | 142 | + Json::Value PUTJson(std::string uri, const Json::Value& body, const std::string &adr, int port=80) const; |
| 142 | }; | 143 | }; |
| 143 | 144 | ||
| 144 | #endif | 145 | #endif |
hueplusplus/include/IHttpHandler.h
0 โ 100644
| 1 | +/** | ||
| 2 | + \file IHttpHandler.h | ||
| 3 | + Copyright Notice\n | ||
| 4 | + Copyright (C) 2017 Jan Rogall - developer\n | ||
| 5 | + Copyright (C) 2017 Moritz Wirger - developer\n | ||
| 6 | + | ||
| 7 | + This program is free software; you can redistribute it and/or modify | ||
| 8 | + it under the terms of the GNU General Public License as published by | ||
| 9 | + the Free Software Foundation; either version 3 of the License, or | ||
| 10 | + (at your option) any later version. | ||
| 11 | + This program is distributed in the hope that it will be useful, | ||
| 12 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | + GNU General Public License for more details. | ||
| 15 | + You should have received a copy of the GNU General Public License | ||
| 16 | + along with this program; if not, write to the Free Software Foundation, | ||
| 17 | + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||
| 18 | +**/ | ||
| 19 | + | ||
| 20 | +#ifndef _IHTTPHANDLER_H | ||
| 21 | +#define _IHTTPHANDLER_H | ||
| 22 | + | ||
| 23 | +#include <string> | ||
| 24 | +#include <vector> | ||
| 25 | + | ||
| 26 | +#include "json/json.h" | ||
| 27 | + | ||
| 28 | +class IHttpHandler | ||
| 29 | +{ | ||
| 30 | +public: | ||
| 31 | + | ||
| 32 | + //! \brief Virtual dtor | ||
| 33 | + virtual ~IHttpHandler() = default; | ||
| 34 | + | ||
| 35 | + //! \brief Virtual function that should send a given message to a specified host and return the response. | ||
| 36 | + //! | ||
| 37 | + //! It should return a string containing the response of the host. | ||
| 38 | + //! \param msg String that contains the message that should be sent to the specified address | ||
| 39 | + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | ||
| 40 | + //! \param port Optional integer that specifies the port to which the request should be sent to. Default is 80 | ||
| 41 | + //! \return String containing the response of the host | ||
| 42 | + virtual std::string send(const std::string &msg, const std::string &adr, int port=80) const = 0; | ||
| 43 | + | ||
| 44 | + //! \brief Virtual Function that should given message to a specified host and return the body of the response. | ||
| 45 | + //! | ||
| 46 | + //! It should return a string containing only the body of the response of the host. | ||
| 47 | + //! Note if no body is found a runtime error is thrown! | ||
| 48 | + //! \param msg String that contains the message that should sent to the specified address | ||
| 49 | + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | ||
| 50 | + //! \param port Optional integer that specifies the port to which the request should be sent. Default is 80 | ||
| 51 | + //! \return String containing the body of the response of the host | ||
| 52 | + virtual std::string sendGetHTTPBody(const std::string &msg, const std::string &adr, int port = 80) const = 0; | ||
| 53 | + | ||
| 54 | + //! \brief Virtual function that should send a multicast request with a specified message. | ||
| 55 | + //! | ||
| 56 | + //! It should return a vector containing all responses the multicast request got back | ||
| 57 | + //! \param msg String that contains the request that should be sent to the specified address | ||
| 58 | + //! \param adr Optional String that contains an ip or hostname in dotted decimal notation, default is "239.255.255.250" | ||
| 59 | + //! \param port Optional integer that specifies the port to which the request should be sent. Default is 1900 | ||
| 60 | + //! \param timeout Optional Integer that specifies the timeout of the request in seconds. Default is 5 | ||
| 61 | + //! \return Vector containing strings of each answer received | ||
| 62 | + virtual std::vector<std::string> sendMulticast(const std::string &msg, const std::string &adr = "239.255.255.250", int port = 1900, int timeout = 5) const = 0; | ||
| 63 | + | ||
| 64 | + //! \brief Virtual function that should send a HTTP request with the given method to the specified host and return the body of the response. | ||
| 65 | + //! | ||
| 66 | + //! It should return a string containing only the body of the response of the host. | ||
| 67 | + //! Note body can also be left empty! | ||
| 68 | + //! \param method String that contains the HTTP method type e.g. GET, HEAD, POST, PUT, DELETE, ... | ||
| 69 | + //! \param uri String that contains the uniform resource identifier | ||
| 70 | + //! \param content_type String that contains the type(MIME) of the body data e.g. "text/html", "application/json", ... | ||
| 71 | + //! \param body String that contains the data of the request | ||
| 72 | + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | ||
| 73 | + //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | ||
| 74 | + //! \return String containing the body of the response of the host | ||
| 75 | + virtual std::string sendHTTPRequest(std::string method, std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80) const = 0; | ||
| 76 | + | ||
| 77 | + //! \brief Virtual function that should send a HTTP GET request to the specified host and return the body of the response. | ||
| 78 | + //! | ||
| 79 | + //! It should return a string containing only the body of the response of the host. | ||
| 80 | + //! Note body can also be left empty! | ||
| 81 | + //! \param uri String that contains the uniform resource identifier | ||
| 82 | + //! \param content_type String that contains the type(MIME) of the body data e.g. "text/html", "application/json", ... | ||
| 83 | + //! \param body String that contains the data of the request | ||
| 84 | + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | ||
| 85 | + //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | ||
| 86 | + //! \return String containing the body of the response of the host | ||
| 87 | + virtual std::string GETString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80) const = 0; | ||
| 88 | + | ||
| 89 | + //! \brief Virtual function that should send a HTTP POST request to the specified host and returns the body of the response. | ||
| 90 | + //! | ||
| 91 | + //! It should return a string containing only the body of the response of the host. | ||
| 92 | + //! Note body can also be left empty! | ||
| 93 | + //! \param uri String that contains the uniform resource identifier | ||
| 94 | + //! \param content_type String that contains the type(MIME) of the body data e.g. "text/html", "application/json", ... | ||
| 95 | + //! \param body String that contains the data of the request | ||
| 96 | + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | ||
| 97 | + //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | ||
| 98 | + //! \return String containing the body of the response of the host | ||
| 99 | + virtual std::string POSTString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80) const = 0; | ||
| 100 | + | ||
| 101 | + //! \brief Virtual function that should send a HTTP PUT request to the specified host and return the body of the response. | ||
| 102 | + //! | ||
| 103 | + //! It should return a string containing only the body of the response of the host. | ||
| 104 | + //! Note body can also be left empty! | ||
| 105 | + //! \param uri String that contains the uniform resource identifier | ||
| 106 | + //! \param content_type String that contains the type(MIME) of the body data e.g. "text/html", "application/json", ... | ||
| 107 | + //! \param body String that contains the data of the request | ||
| 108 | + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | ||
| 109 | + //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | ||
| 110 | + //! \return String containing the body of the response of the host | ||
| 111 | + virtual std::string PUTString(std::string uri, std::string content_type, std::string body, const std::string &adr, int port=80) const = 0; | ||
| 112 | + | ||
| 113 | + //! \brief Virtual function that should send a HTTP GET request to the specified host and return the body of the response. | ||
| 114 | + //! | ||
| 115 | + //! It should return a Json::Value parsed from the body of the response of the host. | ||
| 116 | + //! Note body can also be left empty! | ||
| 117 | + //! \param uri String that contains the uniform resource identifier | ||
| 118 | + //! \param body Json::Value that contains the data of the request | ||
| 119 | + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | ||
| 120 | + //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | ||
| 121 | + //! \return Json::Value containing the parsed body of the response of the host | ||
| 122 | + virtual Json::Value GETJson(std::string uri, const Json::Value& body, const std::string &adr, int port=80) const = 0; | ||
| 123 | + | ||
| 124 | + //! \brief Virtual function that should send a HTTP POST request to the specified host and return the body of the response. | ||
| 125 | + //! | ||
| 126 | + //! It should return a Json::Value parsed from the body of the response of the host. | ||
| 127 | + //! Note body can also be left empty! | ||
| 128 | + //! \param uri String that contains the uniform resource identifier | ||
| 129 | + //! \param body Json::Value that contains the data of the request | ||
| 130 | + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | ||
| 131 | + //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | ||
| 132 | + //! \return Json::Value containing the parsed body of the response of the host | ||
| 133 | + virtual Json::Value POSTJson(std::string uri, const Json::Value& body, const std::string &adr, int port=80) const = 0; | ||
| 134 | + | ||
| 135 | + //! \brief Virtual function that should send a HTTP PUT request to the specified host and return the body of the response. | ||
| 136 | + //! | ||
| 137 | + //! It should return a Json::Value parsed from the body of the response of the host. | ||
| 138 | + //! Note body can also be left empty! | ||
| 139 | + //! \param uri String that contains the uniform resource identifier | ||
| 140 | + //! \param body Json::Value that contains the data of the request | ||
| 141 | + //! \param adr String that contains an ip or hostname in dotted decimal notation like "192.168.2.1" | ||
| 142 | + //! \param port Optional integer that specifies the port to which the request is sent to. Default is 80 | ||
| 143 | + //! \return Json::Value containing the parsed body of the response of the host | ||
| 144 | + virtual Json::Value PUTJson(std::string uri, const Json::Value& body, const std::string &adr, int port=80) const = 0; | ||
| 145 | +}; | ||
| 146 | + | ||
| 147 | +#endif |