BeeeOn Gateway  v2020.3.1-2-g6f737dc
Platform to interconnect the IoT world
HTTPUtil.h
1 #pragma once
2 
3 #include <string>
4 
5 #include <Poco/Logger.h>
6 #include <Poco/SharedPtr.h>
7 #include <Poco/Timespan.h>
8 #include <Poco/URI.h>
9 #include <Poco/Net/HTTPClientSession.h>
10 #include <Poco/Net/HTTPRequest.h>
11 #include <Poco/Net/SocketAddress.h>
12 
13 #include "net/HTTPEntireResponse.h"
14 #include "ssl/SSLClient.h"
15 
16 namespace BeeeOn {
17 
18 class HTTPUtil {
19 public:
20  HTTPUtil() = delete;
21  HTTPUtil(const HTTPUtil &) = delete;
22  HTTPUtil(const HTTPUtil &&) = delete;
23  ~HTTPUtil() = delete;
24 
31  Poco::Net::HTTPRequest& request,
32  const Poco::URI& uri,
33  const std::string& msg,
34  const Poco::Timespan& timeout = -1);
35 
42  Poco::Net::HTTPRequest& request,
43  const Poco::URI& uri,
44  const std::string& msg,
45  SSLClient::Ptr sslConfig,
46  const Poco::Timespan& timeout = -1);
47 
54  Poco::Net::HTTPRequest& request,
55  const std::string& host,
56  const uint16_t port,
57  const std::string& msg,
58  const Poco::Timespan& timeout = -1);
59 
66  Poco::Net::HTTPRequest& request,
67  const std::string& host,
68  const uint16_t port,
69  const std::string& msg,
70  SSLClient::Ptr sslConfig,
71  const Poco::Timespan& timeout = -1);
72 
73 private:
74  static HTTPEntireResponse sendRequest(
75  Poco::SharedPtr<Poco::Net::HTTPClientSession> session,
76  Poco::Net::HTTPRequest& request,
77  const std::string& msg);
78 
79  static Poco::Logger &logger();
80 };
81 
82 }
Definition: HTTPEntireResponse.h:13
Definition: HTTPUtil.h:18
static HTTPEntireResponse makeRequest(Poco::Net::HTTPRequest &request, const Poco::URI &uri, const std::string &msg, const Poco::Timespan &timeout=-1)
Sends HTTP request to target defined by URI. It also sets URI path to the request. If the timeout is negative, it is not set.
Definition: HTTPUtil.cpp:11