aio-libs / aio-libs/aiohttp

Unix domain sockets: Extend documentation & support base_url

Offen
#11,324 3 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Python
Sterne
16.5k
Forks
2.4k
Ø Merge
17 Std. 22 Min.
Gemergte PRs (30 T.)
212

Beschreibung

### Is your feature request related to a problem?

1) The [docs](https://docs.aiohttp.org/en/stable/client_advanced.html#unix-domain-sockets) mention briefly how to connect to a server using unix domain dockets but there's no example of how a valid url should look like. In other words, given `aiohttp.UnixConnector(path='/path/to/socket')`, what's the equivalent url of http://httpbin.org/get?

After some trial and error, here's what doesn't work and what does:
- ❌ `get`: `InvalidUrlClientError`
- ❌ `/get`: `InvalidUrlClientError`
- ❌ `///get`: `InvalidUrlClientError`
- ❌ `//get`: 404 not found - the server receives `/`
- ❌ All the above prepended by explicit `unix:` scheme
- ✅ `//localhost/get` (and `unix://localhost/get`): works
- ✅ `//can-be-anything:12345/get`: works but should it? Apparently host/port are ignored but they're still required.

2) After eventually finding a url that works, I tried to set a base_url to `unix://localhost` (or `unix://localhost/`) so that I can pass just the relative url (`get`). Sadly this also raises `InvalidUrlClientError`

### Describe the solution you'd like

1. Extend the documentation to show valid unix domain socket urls look like
2. Support `base_url` for unix domain sockets

### Related component

Client

### Code of Conduct

- [x] I agree to follow the aio-libs Code of Conduct

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.