summary refs log tree commit diff stats
path: root/lib/pure/httpclient.nim
diff options
context:
space:
mode:
authordef <dennis@felsin9.de>2015-01-03 17:21:54 +0100
committerdef <dennis@felsin9.de>2015-01-03 17:21:54 +0100
commitdd82f0c8298666e2de779c518e6fab14e4d13ab4 (patch)
tree263d3c0d574ce5ef8918a014b8db8f2aeeb8fdb1 /lib/pure/httpclient.nim
parent8f82205d12c7546b7369505b54d0157b4909fe6d (diff)
downloadNim-dd82f0c8298666e2de779c518e6fab14e4d13ab4.tar.gz
Fix httpclient to properly encode queries (path?queries)
Diffstat (limited to 'lib/pure/httpclient.nim')
-rw-r--r--lib/pure/httpclient.nim9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/pure/httpclient.nim b/lib/pure/httpclient.nim
index 3afb625ee..479d9a54d 100644
--- a/lib/pure/httpclient.nim
+++ b/lib/pure/httpclient.nim
@@ -294,7 +294,10 @@ proc request*(url: string, httpMethod = httpGET, extraHeaders = "",
   var r = if proxy == nil: parseUri(url) else: proxy.url
   var headers = substr($httpMethod, len("http"))
   if proxy == nil:
-    headers.add(" /" & r.path & r.query)
+    var pathQuery = " /" & r.path
+    if r.query.len > 0:
+      pathQuery.add("?" & r.query)
+    headers.add(pathQuery)
   else:
     headers.add(" " & url)
 
@@ -442,7 +445,9 @@ proc generateHeaders(r: Uri, httpMethod: HttpMethod,
                      headers: StringTableRef): string =
   result = substr($httpMethod, len("http"))
   # TODO: Proxies
-  result.add(" /" & r.path & r.query)
+  result.add(" /" & r.path)
+  if r.query.len > 0:
+    result.add("?" & r.query)
   result.add(" HTTP/1.1\c\L")
 
   add(result, "Host: " & r.hostname & "\c\L")