Hello!
I was searching for how to send GET params.
I saw some nice functionality in the rest.d module which converts JSON to a querystring for GET requests and otherwise writes it to the body.
Is this type of functionality also available outside rest.d?
Json request(HTTPMethod verb, string name, Json params, bool[string] param_is_json, in ref InetHeaderMap hdrs) const
{
...
if ((verb == HTTPMethod.GET || verb == HTTPMethod.HEAD) && params.length > 0) {
auto query = appender!string();
bool first = true;
foreach (string pname, p; params) {
if (!first) {
query.put('&');
}
else {
first = false;
}
filterURLEncode(query, pname);
query.put('=');
filterURLEncode(query, param_is_json[pname] ? p.toString() : toRestString(p));
}
url.queryString = query.data();
}
...
if (verb != HTTPMethod.GET && verb != HTTPMethod.HEAD) {
req.writeJsonBody(params);
}