introduce string_view
This commit is contained in:
+17
-17
@@ -19,7 +19,7 @@ RequestPtr RequestBuilder::operator()() {
|
||||
request->set_url(std::move(url_));
|
||||
|
||||
for (std::size_t i = 1; i < headers_.size(); i += 2) {
|
||||
request->SetHeader(std::move(headers_[i - 1]), std::move(headers_[i]));
|
||||
request->SetHeader(headers_[i - 1], headers_[i]);
|
||||
}
|
||||
|
||||
// If no Keep-Alive, explicitly set `Connection` to "Close".
|
||||
@@ -34,7 +34,7 @@ RequestPtr RequestBuilder::operator()() {
|
||||
if (gzip_ && body_->Compress()) {
|
||||
request->SetHeader(headers::kContentEncoding, "gzip");
|
||||
}
|
||||
#endif
|
||||
#endif // WEBCC_ENABLE_GZIP
|
||||
} else if (!form_parts_.empty()) {
|
||||
// Another choice to generate the boundary is like what Apache does.
|
||||
// See: https://stackoverflow.com/a/5686863
|
||||
@@ -77,41 +77,41 @@ RequestBuilder& RequestBuilder::File(const fs::path& path,
|
||||
return *this;
|
||||
}
|
||||
|
||||
RequestBuilder& RequestBuilder::FormFile(const std::string& name,
|
||||
RequestBuilder& RequestBuilder::FormFile(string_view name,
|
||||
const fs::path& path,
|
||||
const std::string& media_type) {
|
||||
string_view media_type) {
|
||||
assert(!name.empty());
|
||||
return Form(FormPart::NewFile(name, path, media_type));
|
||||
}
|
||||
|
||||
RequestBuilder& RequestBuilder::FormData(const std::string& name,
|
||||
RequestBuilder& RequestBuilder::FormData(string_view name,
|
||||
std::string&& data,
|
||||
const std::string& media_type) {
|
||||
string_view media_type) {
|
||||
assert(!name.empty());
|
||||
return Form(FormPart::New(name, std::move(data), media_type));
|
||||
}
|
||||
|
||||
RequestBuilder& RequestBuilder::Header(const std::string& key,
|
||||
const std::string& value) {
|
||||
headers_.push_back(key);
|
||||
headers_.push_back(value);
|
||||
RequestBuilder& RequestBuilder::Header(string_view key, string_view value) {
|
||||
headers_.push_back(ToString(key));
|
||||
headers_.push_back(ToString(value));
|
||||
return *this;
|
||||
}
|
||||
|
||||
RequestBuilder& RequestBuilder::Auth(const std::string& type,
|
||||
const std::string& credentials) {
|
||||
RequestBuilder& RequestBuilder::Auth(string_view type,
|
||||
string_view credentials) {
|
||||
headers_.push_back(headers::kAuthorization);
|
||||
headers_.push_back(type + " " + credentials);
|
||||
headers_.push_back(ToString(type) + " " + ToString(credentials));
|
||||
return *this;
|
||||
}
|
||||
|
||||
RequestBuilder& RequestBuilder::AuthBasic(const std::string& login,
|
||||
const std::string& password) {
|
||||
auto credentials = Base64Encode(login + ":" + password);
|
||||
RequestBuilder& RequestBuilder::AuthBasic(string_view login,
|
||||
string_view password) {
|
||||
auto credentials =
|
||||
Base64Encode(ToString(login) + ":" + ToString(password));
|
||||
return Auth("Basic", credentials);
|
||||
}
|
||||
|
||||
RequestBuilder& RequestBuilder::AuthToken(const std::string& token) {
|
||||
RequestBuilder& RequestBuilder::AuthToken(string_view token) {
|
||||
return Auth("Token", token);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user