使用requests通过UNIX域套接字进行HTTP通信
项目描述
使用requests通过UNIX域套接字进行HTTP通信
用法
显式
您可以通过实例化一个特殊的Session对象来使用它
import json
import requests_unixsocket
session = requests_unixsocket.Session()
r = session.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info')
registry_config = r.json()['RegistryConfig']
print(json.dumps(registry_config, indent=4))
隐式(猴子补丁)
猴子补丁允许您使用此模块的功能,同时尽可能减少对代码的修改。请注意,在上面的示例中,我们必须实例化一个特殊的requests_unixsocket.Session对象,并调用该对象上的get方法。调用requests.get(url)(使用requests的最简单方法,可能是最常见的),将不会工作。但我们可以通过猴子补丁来实现这一点。
您可以在全局范围内进行猴子补丁
import requests_unixsocket
requests_unixsocket.monkeypatch()
r = requests.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info')
assert r.status_code == 200
或者您可以使用上下文管理器临时进行操作
import requests_unixsocket
with requests_unixsocket.monkeypatch():
r = requests.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info')
assert r.status_code == 200
抽象命名空间套接字
要连接到抽象命名空间套接字(仅限Linux),请将名称前缀为一个空字节(即:0) - 例如
import requests_unixsocket
session = requests_unixsocket.Session()
res = session.get('http+unix://\0test_socket/get')
print(res.text)
有关说明此内容的示例程序,请参阅git存储库中的examples/abstract_namespace.py。由于抽象命名空间套接字是Linux特有的,因此该程序仅在Linux上工作。
另请参阅
https://github.com/httpie/httpie-unixsocket - HTTPie 的插件,允许您与 UNIX 域套接字进行交互
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
requests-unixsocket-0.3.0.tar.gz (14.5 kB 查看散列)
构建分布
关闭
requests-unixsocket-0.3.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 28304283ea9357d45fff58ad5b11e47708cfbf5806817aa59b2a363228ee971e |
|
MD5 | 2da31f8d76fb563bc3fd6d59a2fb260a |
|
BLAKE2b-256 | c3ea0fb87f844d8a35ff0dcc8b941e1a9ffc9eb46588ac9e4267b9d9804354eb |
关闭
requests_unixsocket-0.3.0-py2.py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | c685c680f0809e1b2955339b1e5afc3c0022b3066f4f7eb343f43a6065fc0e5d |
|
MD5 | c682ab2e29da99f90635fed23882d973 |
|
BLAKE2b-256 | b363e9e81d5e7370d46f08407c37399b507725125587b01fff46b4da5ddd3a4a |