Skip to content

Commit

Permalink
httpclient, maxredirects to Natural, newHttpClient/newAsyncHttpClient…
Browse files Browse the repository at this point in the history
… add headers argument instead of hardcoded empty (nim-lang#13207)
  • Loading branch information
juancarlospaco authored and Araq committed Jan 21, 2020
1 parent bdb7c82 commit 2fad7f1
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
3 changes: 3 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@
- `htmlgen.html` allows `lang` on the `<html>` tag and common valid attributes.
- `macros.basename` and `basename=` got support for `PragmaExpr`,
so that an expression like `MyEnum {.pure.}` is handled correctly.
- `httpclient.maxredirects` changed from `int` to `Natural`, because negative values serve no purpose whatsoever.
- `httpclient.newHttpClient` and `httpclient.newAsyncHttpClient` added `headers` argument to set initial HTTP Headers,
instead of a hardcoded empty `newHttpHeader()`.


## Language additions
Expand Down
14 changes: 9 additions & 5 deletions lib/pure/httpclient.nim
Original file line number Diff line number Diff line change
Expand Up @@ -486,7 +486,7 @@ type
connected: bool
currentURL: Uri ## Where we are currently connected.
headers*: HttpHeaders ## Headers to send in requests.
maxRedirects: int
maxRedirects: Natural ## Maximum redirects, set to ``0`` to disable.
userAgent: string
timeout*: int ## Only used for blocking HttpClient for now.
proxy: Proxy
Expand All @@ -513,7 +513,7 @@ type

proc newHttpClient*(userAgent = defUserAgent,
maxRedirects = 5, sslContext = getDefaultSSL(), proxy: Proxy = nil,
timeout = -1): HttpClient =
timeout = -1, headers = newHttpHeaders()): HttpClient =
## Creates a new HttpClient instance.
##
## ``userAgent`` specifies the user agent that will be used when making
Expand All @@ -529,8 +529,10 @@ proc newHttpClient*(userAgent = defUserAgent,
##
## ``timeout`` specifies the number of milliseconds to allow before a
## ``TimeoutError`` is raised.
##
## ``headers`` specifies the HTTP Headers.
new result
result.headers = newHttpHeaders()
result.headers = headers
result.userAgent = userAgent
result.maxRedirects = maxRedirects
result.proxy = proxy
Expand All @@ -546,7 +548,7 @@ type

proc newAsyncHttpClient*(userAgent = defUserAgent,
maxRedirects = 5, sslContext = getDefaultSSL(),
proxy: Proxy = nil): AsyncHttpClient =
proxy: Proxy = nil, headers = newHttpHeaders()): AsyncHttpClient =
## Creates a new AsyncHttpClient instance.
##
## ``userAgent`` specifies the user agent that will be used when making
Expand All @@ -559,8 +561,10 @@ proc newAsyncHttpClient*(userAgent = defUserAgent,
##
## ``proxy`` specifies an HTTP proxy to use for this HTTP client's
## connections.
##
## ``headers`` specifies the HTTP Headers.
new result
result.headers = newHttpHeaders()
result.headers = headers
result.userAgent = userAgent
result.maxRedirects = maxRedirects
result.proxy = proxy
Expand Down

0 comments on commit 2fad7f1

Please sign in to comment.