Only allow session-level setting for ssl_verify and buffer_size.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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_;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -44,8 +44,6 @@ HttpRequestPtr HttpRequestBuilder::operator()() {
|
||||
}
|
||||
}
|
||||
|
||||
request->set_buffer_size(buffer_);
|
||||
|
||||
return request;
|
||||
}
|
||||
|
||||
|
||||
@@ -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<std::string> 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;
|
||||
};
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user