#pragma once #include #include #include #include #include #include #include #include #include namespace DB { /* Perform HTTP POST/PUT request. */ class WriteBufferFromHTTP : public WriteBufferFromOStream { public: explicit WriteBufferFromHTTP(const HTTPConnectionGroupType & connection_group, const Poco::URI & uri, const std::string & method = Poco::Net::HTTPRequest::HTTP_POST, // POST or PUT only const std::string & content_type = "", const std::string & content_encoding = "", const HTTPHeaderEntries & additional_headers = {}, const ConnectionTimeouts & timeouts = {}, size_t buffer_size_ = DBMS_DEFAULT_BUFFER_SIZE, ProxyConfiguration proxy_configuration = {}); private: /// Receives response from the server after sending all data. void finalizeImpl() override; HTTPSessionPtr session; Poco::Net::HTTPRequest request; Poco::Net::HTTPResponse response; }; }