diff options
author | def <dennis@felsin9.de> | 2015-01-03 17:21:54 +0100 |
---|---|---|
committer | def <dennis@felsin9.de> | 2015-01-03 17:21:54 +0100 |
commit | dd82f0c8298666e2de779c518e6fab14e4d13ab4 (patch) | |
tree | 263d3c0d574ce5ef8918a014b8db8f2aeeb8fdb1 /lib/pure/httpclient.nim | |
parent | 8f82205d12c7546b7369505b54d0157b4909fe6d (diff) | |
download | Nim-dd82f0c8298666e2de779c518e6fab14e4d13ab4.tar.gz |
Fix httpclient to properly encode queries (path?queries)
Diffstat (limited to 'lib/pure/httpclient.nim')
-rw-r--r-- | lib/pure/httpclient.nim | 9 |
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") |