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);
}