aio-libs / aio-libs/aiohttp

Unix domain sockets: Extend documentation & support base_url

未关闭
#11,324 3 条评论 2 个 reaction 已指派 0 人 在 GitHub 查看
enhancement
主要语言
Python
星标
16.5k
派生
2.4k
平均合并
17 小时 22 分钟
30 天内合并 PR
212

描述

### 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

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。