diff --git a/httpx/_client.py b/httpx/_client.py index dad4a42aab..0a2e525a2f 100644 --- a/httpx/_client.py +++ b/httpx/_client.py @@ -208,7 +208,7 @@ def _merge_url(self, url: URLTypes) -> URL: Merge a URL argument together with any 'base_url' on the client, to create the URL used for the outgoing request. """ - return self.base_url.join(relative_url=url) + return self.base_url.join(url) def _merge_cookies( self, cookies: CookieTypes = None diff --git a/httpx/_models.py b/httpx/_models.py index 9c5aa1773a..41c7a274e6 100644 --- a/httpx/_models.py +++ b/httpx/_models.py @@ -183,17 +183,17 @@ def copy_with(self, **kwargs: typing.Any) -> "URL": return URL(self._uri_reference.copy_with(**kwargs).unsplit(),) - def join(self, relative_url: URLTypes) -> "URL": + def join(self, url: URLTypes) -> "URL": """ Return an absolute URL, using given this URL as the base. """ if self.is_relative_url: - return URL(relative_url) + return URL(url) # We drop any fragment portion, because RFC 3986 strictly # treats URLs with a fragment portion as not being absolute URLs. base_uri = self._uri_reference.copy_with(fragment=None) - relative_url = URL(relative_url) + relative_url = URL(url) return URL(relative_url._uri_reference.resolve_with(base_uri).unsplit()) def __hash__(self) -> int: