Interestingly enough, this code DOES work:
import std.net.curl;
auto data = serializeToJson(["user": ["email": username, "password": password]]).toString();
auto client = HTTP("localhost:3000/users/login");
client.postData = data;
client.addRequestHeader("Accept", "application/json");
client.addRequestHeader("Content-Type", "application/json");
client.perform();
auto status = client.statusLine;
logInfo("Status: %s", status);
if (status.code == 201) return true;
return false;
I'm not sure what the vibe libraries are doing differently or if it really is a bug?