24 #ifndef STATICLIB_HTTP_SESSION_HPP
25 #define STATICLIB_HTTP_SESSION_HPP
31 #include "staticlib/config.hpp"
32 #include "staticlib/io.hpp"
33 #include "staticlib/pimpl.hpp"
43 class session :
public sl::pimpl::object {
73 const std::string& url,
85 const std::string& url,
86 std::streambuf* post_data,
97 template<
typename PostDataSource,
98 class =
typename std::enable_if<!std::is_lvalue_reference<PostDataSource>::value>::type>
100 const std::string& url,
101 PostDataSource&& post_data,
103 std::unique_ptr<std::istream> sbuf{
104 staticlib::io::make_source_istream_ptr(std::move(post_data))
106 return open_url(url, std::move(sbuf), std::move(opts));
117 template<
typename PostDataSource>
119 const std::string& url,
120 PostDataSource& post_data,
122 std::unique_ptr<std::istream> sbuf{
123 staticlib::io::make_source_istream_ptr(post_data)
125 return open_url(url, std::move(sbuf), std::move(opts));
137 const std::string& url,
138 std::unique_ptr<std::istream> post_data,
139 request_options opts = request_options{}) = 0;