mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-18 21:40:32 +00:00
replace deprecated parseUrl with parseUri in httpclient
This commit is contained in:
@@ -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 != "":
|
||||
|
||||
Reference in New Issue
Block a user