From d88f23b7e6204ec2c5d4f5d3cda507415308c624 Mon Sep 17 00:00:00 2001 From: Sebastian Wilzbach Date: Fri, 13 Jan 2017 20:20:56 +0100 Subject: [PATCH] Use appender to build queryString --- source/oauth/client.d | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/source/oauth/client.d b/source/oauth/client.d index 4131451..3341299 100644 --- a/source/oauth/client.d +++ b/source/oauth/client.d @@ -149,6 +149,7 @@ class OAuthSettings in string[string] extraParams = null, in string[] scopes = null) immutable { + import std.array : Appender; import std.random : uniform; import std.digest.digest : toHexString; @@ -177,12 +178,14 @@ class OAuthSettings httpSession.set("oauth.client", toHexString(this.hash)); URL uri = provider.authUriParsed; - auto qs = reqParams.formEncode(); - + Appender!string app; if (uri.queryString.length) - uri.queryString = uri.queryString ~ '&' ~ qs; - else - uri.queryString = qs; + { + app.put(uri.queryString); + app.put('&'); + } + app.formEncode(reqParams); + uri.queryString = app.data; return uri.toString; }