diff --git a/examples/http_client.cc b/examples/http_client.cc index 52dd807..f7160dd 100644 --- a/examples/http_client.cc +++ b/examples/http_client.cc @@ -21,8 +21,7 @@ void ExampleBasic() { .url("http://httpbin.org/get") .parameter("key1", "value1") .parameter("key2", "value2") - .header("Accept", "application/json") - .buffer(1000)()); + .header("Accept", "application/json")()); std::cout << r->content() << std::endl; } diff --git a/webcc/http_client.cc b/webcc/http_client.cc index fa12624..2bb70bc 100644 --- a/webcc/http_client.cc +++ b/webcc/http_client.cc @@ -12,6 +12,7 @@ namespace webcc { HttpClient::HttpClient() : timer_(io_context_), ssl_verify_(true), + buffer_size_(kBufferSize), timeout_(kMaxReadSeconds), closed_(false), timer_canceled_(false), @@ -30,14 +31,9 @@ bool HttpClient::Request(HttpRequestPtr request, bool connect) { timed_out_ = false; error_ = kNoError; - std::size_t buffer_size = request->buffer_size(); - if (buffer_size == 0) { - buffer_size = kBufferSize; - } - - if (buffer_.size() != buffer_size) { - LOG_VERB("Resize buffer: %u -> %u.", buffer_.size(), buffer_size); - buffer_.resize(buffer_size); + if (buffer_.size() != buffer_size_) { + LOG_VERB("Resize buffer: %u -> %u.", buffer_.size(), buffer_size_); + buffer_.resize(buffer_size_); } if (connect) { diff --git a/webcc/http_client.h b/webcc/http_client.h index cd52282..e52b5c5 100644 --- a/webcc/http_client.h +++ b/webcc/http_client.h @@ -38,6 +38,12 @@ public: ssl_verify_ = ssl_verify; } + void set_buffer_size(std::size_t buffer_size) { + if (buffer_size > 0) { + buffer_size_ = buffer_size; + } + } + // Set the timeout (in seconds) for reading response. void set_timeout(int timeout) { if (timeout > 0) { @@ -94,6 +100,10 @@ private: // Verify the certificate of the peer or not (for HTTPS). bool ssl_verify_; + // The size of the buffer for reading response. + // 0 means default value will be used. + std::size_t buffer_size_; + // Timeout (seconds) for receiving response. int timeout_; diff --git a/webcc/http_client_session.cc b/webcc/http_client_session.cc index bf5ecc3..b5d3325 100644 --- a/webcc/http_client_session.cc +++ b/webcc/http_client_session.cc @@ -139,10 +139,6 @@ void HttpClientSession::InitHeaders() { } HttpResponsePtr HttpClientSession::Send(HttpRequestPtr request) { - if (request->buffer_size() == 0) { - request->set_buffer_size(buffer_size_); - } - const HttpClientPool::Key key{request->url()}; // Reuse a pooled connection. @@ -158,6 +154,7 @@ HttpResponsePtr HttpClientSession::Send(HttpRequestPtr request) { } client->set_ssl_verify(ssl_verify_); + client->set_buffer_size(buffer_size_); client->set_timeout(timeout_); bool ok = client->Request(request, !reuse); diff --git a/webcc/http_request.h b/webcc/http_request.h index cac713b..1b53370 100644 --- a/webcc/http_request.h +++ b/webcc/http_request.h @@ -36,14 +36,6 @@ public: url_.AddParameter(key, value); } - void set_buffer_size(std::size_t buffer_size) { - buffer_size_ = buffer_size; - } - - void set_ssl_verify(bool ssl_verify) { - ssl_verify_ = ssl_verify; - } - const std::string& method() const { return method_; } @@ -64,16 +56,6 @@ public: return port().empty() ? default_port : port(); } - // TODO: Remove - std::size_t buffer_size() const { - return buffer_size_; - } - - // TODO: Remove - bool ssl_verify() const { - return ssl_verify_; - } - // Prepare payload. // Compose start line, set Host header, etc. bool Prepare() final; @@ -81,13 +63,6 @@ public: private: std::string method_; Url url_; - - // Verify the certificate of the peer or not (for HTTPS). - bool ssl_verify_ = true; - - // The size of the buffer for reading response. - // 0 means default value will be used. - std::size_t buffer_size_ = 0; }; } // namespace webcc diff --git a/webcc/http_request_builder.cc b/webcc/http_request_builder.cc index f1587e8..68f9c49 100644 --- a/webcc/http_request_builder.cc +++ b/webcc/http_request_builder.cc @@ -44,8 +44,6 @@ HttpRequestPtr HttpRequestBuilder::operator()() { } } - request->set_buffer_size(buffer_); - return request; } diff --git a/webcc/http_request_builder.h b/webcc/http_request_builder.h index 120834a..8bc7712 100644 --- a/webcc/http_request_builder.h +++ b/webcc/http_request_builder.h @@ -68,11 +68,6 @@ public: return *this; } - HttpRequestBuilder& buffer(std::size_t buffer) { - buffer_ = buffer; - return *this; - } - HttpRequestBuilder& keep_alive(bool keep_alive) { keep_alive_ = keep_alive; return *this; @@ -101,10 +96,6 @@ private: // Additional request headers. std::vector headers_; - // Size of the buffer to read response. - // Leave it to 0 for using default value. - std::size_t buffer_ = 0; - // Persistent connection. bool keep_alive_ = true; }; diff --git a/webcc/soap_client.cc b/webcc/soap_client.cc index 847c225..1acf249 100644 --- a/webcc/soap_client.cc +++ b/webcc/soap_client.cc @@ -61,10 +61,10 @@ bool SoapClient::Request(const std::string& operation, http_request->SetHeader(kSoapAction, operation); - http_request->set_buffer_size(buffer_size); - http_request->Prepare(); + http_client_.set_buffer_size(buffer_size); + if (!http_client_.Request(http_request, true)) { error_ = http_client_.error(); return false;