replace deprecated parseUrl with parseUri in httpclient
This commit is contained in:
parent
7a7fe85f85
commit
3cfc8877f6
1 changed files with 10 additions and 10 deletions
|
|
@ -88,7 +88,7 @@
|
||||||
## constructor should be used for this purpose. However,
|
## constructor should be used for this purpose. However,
|
||||||
## currently only basic authentication is supported.
|
## currently only basic authentication is supported.
|
||||||
|
|
||||||
import net, strutils, parseurl, parseutils, strtabs, base64, os
|
import net, strutils, uri, parseutils, strtabs, base64, os
|
||||||
import asyncnet, asyncdispatch
|
import asyncnet, asyncdispatch
|
||||||
import rawsockets
|
import rawsockets
|
||||||
|
|
||||||
|
|
@ -100,7 +100,7 @@ type
|
||||||
body: string]
|
body: string]
|
||||||
|
|
||||||
Proxy* = ref object
|
Proxy* = ref object
|
||||||
url*: Url
|
url*: Uri
|
||||||
auth*: string
|
auth*: string
|
||||||
|
|
||||||
ProtocolError* = object of IOError ## exception that is raised when server
|
ProtocolError* = object of IOError ## exception that is raised when server
|
||||||
|
|
@ -278,7 +278,7 @@ else:
|
||||||
|
|
||||||
proc newProxy*(url: string, auth = ""): Proxy =
|
proc newProxy*(url: string, auth = ""): Proxy =
|
||||||
## Constructs a new ``TProxy`` object.
|
## Constructs a new ``TProxy`` object.
|
||||||
result = Proxy(url: parseUrl(url), auth: auth)
|
result = Proxy(url: parseUri(url), auth: auth)
|
||||||
|
|
||||||
proc request*(url: string, httpMethod = httpGET, extraHeaders = "",
|
proc request*(url: string, httpMethod = httpGET, extraHeaders = "",
|
||||||
body = "",
|
body = "",
|
||||||
|
|
@ -289,7 +289,7 @@ proc request*(url: string, httpMethod = httpGET, extraHeaders = "",
|
||||||
## | Extra headers can be specified and must be seperated by ``\c\L``
|
## | Extra headers can be specified and must be seperated by ``\c\L``
|
||||||
## | An optional timeout can be specified in miliseconds, if reading from the
|
## | An optional timeout can be specified in miliseconds, if reading from the
|
||||||
## server takes longer than specified an ETimeout exception will be raised.
|
## server takes longer than specified an ETimeout exception will be raised.
|
||||||
var r = if proxy == nil: parseUrl(url) else: proxy.url
|
var r = if proxy == nil: parseUri(url) else: proxy.url
|
||||||
var headers = substr($httpMethod, len("http"))
|
var headers = substr($httpMethod, len("http"))
|
||||||
if proxy == nil:
|
if proxy == nil:
|
||||||
headers.add(" /" & r.path & r.query)
|
headers.add(" /" & r.path & r.query)
|
||||||
|
|
@ -341,9 +341,9 @@ proc getNewLocation(lastUrl: string, headers: StringTableRef): string =
|
||||||
result = headers["Location"]
|
result = headers["Location"]
|
||||||
if result == "": httpError("location header expected")
|
if result == "": httpError("location header expected")
|
||||||
# Relative URLs. (Not part of the spec, but soon will be.)
|
# Relative URLs. (Not part of the spec, but soon will be.)
|
||||||
let r = parseURL(result)
|
let r = parseUri(result)
|
||||||
if r.hostname == "" and r.path != "":
|
if r.hostname == "" and r.path != "":
|
||||||
let origParsed = parseURL(lastUrl)
|
let origParsed = parseUri(lastUrl)
|
||||||
result = origParsed.hostname & "/" & r.path
|
result = origParsed.hostname & "/" & r.path
|
||||||
|
|
||||||
proc get*(url: string, extraHeaders = "", maxRedirects = 5,
|
proc get*(url: string, extraHeaders = "", maxRedirects = 5,
|
||||||
|
|
@ -436,7 +436,7 @@ proc downloadFile*(url: string, outputFilename: string,
|
||||||
else:
|
else:
|
||||||
fileError("Unable to open file")
|
fileError("Unable to open file")
|
||||||
|
|
||||||
proc generateHeaders(r: Url, httpMethod: HttpMethod,
|
proc generateHeaders(r: Uri, httpMethod: HttpMethod,
|
||||||
headers: StringTableRef): string =
|
headers: StringTableRef): string =
|
||||||
result = substr($httpMethod, len("http"))
|
result = substr($httpMethod, len("http"))
|
||||||
# TODO: Proxies
|
# TODO: Proxies
|
||||||
|
|
@ -454,7 +454,7 @@ type
|
||||||
AsyncHttpClient* = ref object
|
AsyncHttpClient* = ref object
|
||||||
socket: AsyncSocket
|
socket: AsyncSocket
|
||||||
connected: bool
|
connected: bool
|
||||||
currentURL: Url ## Where we are currently connected.
|
currentURL: Uri ## Where we are currently connected.
|
||||||
headers*: StringTableRef
|
headers*: StringTableRef
|
||||||
maxRedirects: int
|
maxRedirects: int
|
||||||
userAgent: string
|
userAgent: string
|
||||||
|
|
@ -606,7 +606,7 @@ proc parseResponse(client: AsyncHttpClient,
|
||||||
else:
|
else:
|
||||||
result.body = ""
|
result.body = ""
|
||||||
|
|
||||||
proc newConnection(client: AsyncHttpClient, url: Url) {.async.} =
|
proc newConnection(client: AsyncHttpClient, url: Uri) {.async.} =
|
||||||
if client.currentURL.hostname != url.hostname or
|
if client.currentURL.hostname != url.hostname or
|
||||||
client.currentURL.scheme != url.scheme:
|
client.currentURL.scheme != url.scheme:
|
||||||
if client.connected: client.close()
|
if client.connected: client.close()
|
||||||
|
|
@ -642,7 +642,7 @@ proc request*(client: AsyncHttpClient, url: string, httpMethod = httpGET,
|
||||||
## connection can be closed by using the ``close`` procedure.
|
## connection can be closed by using the ``close`` procedure.
|
||||||
##
|
##
|
||||||
## The returned future will complete once the request is completed.
|
## The returned future will complete once the request is completed.
|
||||||
let r = parseUrl(url)
|
let r = parseUri(url)
|
||||||
await newConnection(client, r)
|
await newConnection(client, r)
|
||||||
|
|
||||||
if not client.headers.hasKey("user-agent") and client.userAgent != "":
|
if not client.headers.hasKey("user-agent") and client.userAgent != "":
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue