This commit is contained in:
Varun Chawla 2026-02-24 17:41:20 +02:00 committed by GitHub
commit 07f75f3e63
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 3 deletions

View File

@ -396,7 +396,7 @@ class Request:
extensions: RequestExtensions | None = None,
) -> None:
self.method = method.upper()
self.url = URL(url) if params is None else URL(url, params=params)
self.url = URL(url) if params is None else URL(url).copy_merge_params(params)
self.headers = Headers(headers)
self.extensions = {} if extensions is None else dict(extensions)

View File

@ -232,10 +232,18 @@ def test_request_params():
request = httpx.Request("GET", "http://example.com", params={})
assert str(request.url) == "http://example.com"
# Params are merged with existing URL query parameters, not replaced.
request = httpx.Request(
"GET", "http://example.com?c=3", params={"a": "1", "b": "2"}
)
assert str(request.url) == "http://example.com?a=1&b=2"
assert str(request.url) == "http://example.com?c=3&a=1&b=2"
# Empty params preserves existing URL query parameters.
request = httpx.Request("GET", "http://example.com?a=1", params={})
assert str(request.url) == "http://example.com"
assert str(request.url) == "http://example.com?a=1"
# Params with overlapping keys override existing URL query parameters.
request = httpx.Request(
"GET", "http://example.com?a=1&b=2", params={"b": "3", "c": "4"}
)
assert str(request.url) == "http://example.com?a=1&b=3&c=4"