Open
Description
URLs of the form hostname:8080
(with no scheme, with "hostname" not containing any dots) can be used to refer to the netloc "hostname:8080"
requests.utils.prepend_scheme_if_needed
should correctly prepend the new_scheme
when provided with such a URL.
Expected Result
the prepended-scheme URL should be "http://hostname:8080"
Actual Result
the prepended-scheme URL is "hostname:///8080" (e.g. treating the "hostname" part as the scheme, no host, no port, and "8080" as the path)
I extended the test_prepend_scheme_if_needed
to demonstrate this behavior (see main...itamaro:requests:schemeless-hostname-anad-port-bug)
Reproduction Steps
from requests.utils import prepend_scheme_if_needed
print(prepend_scheme_if_needed("hostname:8080", "http"))
System Information
$ python -m requests.help
{
"chardet": {
"version": null
},
"charset_normalizer": {
"version": "3.1.0"
},
"cryptography": {
"version": ""
},
"idna": {
"version": "3.4"
},
"implementation": {
"name": "CPython",
"version": "3.10.4"
},
"platform": {
"release": "22.4.0",
"system": "Darwin"
},
"pyOpenSSL": {
"openssl_version": "",
"version": null
},
"requests": {
"version": "2.30.0"
},
"system_ssl": {
"version": "101010ef"
},
"urllib3": {
"version": "2.0.2"
},
"using_charset_normalizer": true,
"using_pyopenssl": false
}
Metadata
Metadata
Assignees
Labels
No labels