From 1fba9dc6048cea6184964032b861b052cd54878c Mon Sep 17 00:00:00 2001 From: Ian Shipman <22924983+GambolingPangolin@users.noreply.github.com> Date: Mon, 16 May 2022 09:50:10 -0500 Subject: [PATCH] Only add a ? when query string is nonempty (#1589) * Only add a ? when query string is nonempty * Adds changelog entry --- changelog.d/1589 | 2 ++ servant-client/src/Servant/Client/Internal/HttpClient.hs | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 changelog.d/1589 diff --git a/changelog.d/1589 b/changelog.d/1589 new file mode 100644 index 00000000..5f477b79 --- /dev/null +++ b/changelog.d/1589 @@ -0,0 +1,2 @@ +synopsis: Only include question mark for nonempty query strings +prs: 1589 diff --git a/servant-client/src/Servant/Client/Internal/HttpClient.hs b/servant-client/src/Servant/Client/Internal/HttpClient.hs index 42fecfb7..ee146cc7 100644 --- a/servant-client/src/Servant/Client/Internal/HttpClient.hs +++ b/servant-client/src/Servant/Client/Internal/HttpClient.hs @@ -289,7 +289,8 @@ defaultMakeClientRequest burl r = Client.defaultRequest Https -> True -- Query string builder which does not do any encoding - buildQueryString = ("?" <>) . foldl' addQueryParam mempty + buildQueryString [] = mempty + buildQueryString qps = "?" <> foldl' addQueryParam mempty qps addQueryParam qs (k, v) = qs <> (if BS.null qs then mempty else "&") <> urlEncode True k <> foldMap ("=" <>) v