replace deprecated parseUrl with parseUri in httpclient

This commit is contained in:
Will Szumski
2014-12-17 18:16:06 +00:00
parent 7a7fe85f85
commit 3cfc8877f6

View File

@@ -88,7 +88,7 @@
## constructor should be used for this purpose. However,
## 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 rawsockets
@@ -100,7 +100,7 @@ type
body: string]
Proxy* = ref object
url*: Url
url*: Uri
auth*: string
ProtocolError* = object of IOError ## exception that is raised when server
@@ -278,7 +278,7 @@ else:
proc newProxy*(url: string, auth = ""): Proxy =
## 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 = "",
body = "",
@@ -289,7 +289,7 @@ proc request*(url: string, httpMethod = httpGET, extraHeaders = "",
## | Extra headers can be specified and must be seperated by ``\c\L``
## | An optional timeout can be specified in miliseconds, if reading from the
## 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"))
if proxy == nil:
headers.add(" /" & r.path & r.query)
@@ -341,9 +341,9 @@ proc getNewLocation(lastUrl: string, headers: StringTableRef): string =
result = headers["Location"]
if result == "": httpError("location header expected")
# 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 != "":
let origParsed = parseURL(lastUrl)
let origParsed = parseUri(lastUrl)
result = origParsed.hostname & "/" & r.path
proc get*(url: string, extraHeaders = "", maxRedirects = 5,
@@ -436,7 +436,7 @@ proc downloadFile*(url: string, outputFilename: string,
else:
fileError("Unable to open file")
proc generateHeaders(r: Url, httpMethod: HttpMethod,
proc generateHeaders(r: Uri, httpMethod: HttpMethod,
headers: StringTableRef): string =
result = substr($httpMethod, len("http"))
# TODO: Proxies
@@ -454,7 +454,7 @@ type
AsyncHttpClient* = ref object
socket: AsyncSocket
connected: bool
currentURL: Url ## Where we are currently connected.
currentURL: Uri ## Where we are currently connected.
headers*: StringTableRef
maxRedirects: int
userAgent: string
@@ -606,7 +606,7 @@ proc parseResponse(client: AsyncHttpClient,
else:
result.body = ""
proc newConnection(client: AsyncHttpClient, url: Url) {.async.} =
proc newConnection(client: AsyncHttpClient, url: Uri) {.async.} =
if client.currentURL.hostname != url.hostname or
client.currentURL.scheme != url.scheme:
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.
##
## The returned future will complete once the request is completed.
let r = parseUrl(url)
let r = parseUri(url)
await newConnection(client, r)
if not client.headers.hasKey("user-agent") and client.userAgent != "":