Fix URL encoding issues; remove request shortcuts.
This commit is contained in:
@@ -47,104 +47,6 @@ ResponsePtr ClientSession::Request(RequestPtr request, bool stream) {
|
||||
return Send(request, stream);
|
||||
}
|
||||
|
||||
static void SetHeaders(const Strings& headers, RequestBuilder* builder) {
|
||||
assert(headers.size() % 2 == 0);
|
||||
|
||||
for (std::size_t i = 1; i < headers.size(); i += 2) {
|
||||
builder->Header(headers[i - 1], headers[i]);
|
||||
}
|
||||
}
|
||||
|
||||
ResponsePtr ClientSession::Get(const std::string& url,
|
||||
const Strings& parameters,
|
||||
const Strings& headers) {
|
||||
RequestBuilder builder;
|
||||
builder.Get(url);
|
||||
|
||||
assert(parameters.size() % 2 == 0);
|
||||
for (std::size_t i = 1; i < parameters.size(); i += 2) {
|
||||
builder.Query(parameters[i - 1], parameters[i]);
|
||||
}
|
||||
|
||||
SetHeaders(headers, &builder);
|
||||
|
||||
return Request(builder());
|
||||
}
|
||||
|
||||
ResponsePtr ClientSession::Head(const std::string& url,
|
||||
const Strings& parameters,
|
||||
const Strings& headers) {
|
||||
RequestBuilder builder;
|
||||
builder.Head(url);
|
||||
|
||||
assert(parameters.size() % 2 == 0);
|
||||
for (std::size_t i = 1; i < parameters.size(); i += 2) {
|
||||
builder.Query(parameters[i - 1], parameters[i]);
|
||||
}
|
||||
|
||||
SetHeaders(headers, &builder);
|
||||
|
||||
return Request(builder());
|
||||
}
|
||||
|
||||
ResponsePtr ClientSession::Post(const std::string& url, std::string&& data,
|
||||
bool json, const Strings& headers) {
|
||||
RequestBuilder builder;
|
||||
builder.Post(url);
|
||||
|
||||
SetHeaders(headers, &builder);
|
||||
|
||||
builder.Body(std::move(data));
|
||||
|
||||
if (json) {
|
||||
builder.Json();
|
||||
}
|
||||
|
||||
return Request(builder());
|
||||
}
|
||||
|
||||
ResponsePtr ClientSession::Put(const std::string& url, std::string&& data,
|
||||
bool json, const Strings& headers) {
|
||||
RequestBuilder builder;
|
||||
builder.Put(url);
|
||||
|
||||
SetHeaders(headers, &builder);
|
||||
|
||||
builder.Body(std::move(data));
|
||||
|
||||
if (json) {
|
||||
builder.Json();
|
||||
}
|
||||
|
||||
return Request(builder());
|
||||
}
|
||||
|
||||
ResponsePtr ClientSession::Delete(const std::string& url,
|
||||
const Strings& headers) {
|
||||
RequestBuilder builder;
|
||||
builder.Delete(url);
|
||||
|
||||
SetHeaders(headers, &builder);
|
||||
|
||||
return Request(builder());
|
||||
}
|
||||
|
||||
ResponsePtr ClientSession::Patch(const std::string& url, std::string&& data,
|
||||
bool json, const Strings& headers) {
|
||||
RequestBuilder builder;
|
||||
builder.Patch(url);
|
||||
|
||||
SetHeaders(headers, &builder);
|
||||
|
||||
builder.Body(std::move(data));
|
||||
|
||||
if (json) {
|
||||
builder.Json();
|
||||
}
|
||||
|
||||
return Request(builder());
|
||||
}
|
||||
|
||||
void ClientSession::InitHeaders() {
|
||||
using namespace headers;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user