使用requests通过UNIX域套接字进行HTTP通信
项目描述
requests-unixsocket2
使用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))
隐式(monkeypatching)
Monkeypatching允许您在尽量减少对代码修改的情况下使用此模块的功能。注意,在上面的示例中,我们必须实例化一个特殊的requests_unixsocket.Session
对象并在该对象上调用get
方法。调用requests.get(url)
(使用requests的最简单方法,可能非常常见)将不会工作。但我们可以通过monkeypatching使其工作。
您可以在全局范围内进行monkeypatching
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/msabramo/requests-unixsocket - 此项目的起源。
- https://github.com/httpie/httpie-unixsocket - 一个
HTTPie <https://httpie.org/>
插件,允许您与UNIX域套接字进行交互。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源代码发行版
requests_unixsocket2-0.4.2.tar.gz (6.4 kB 查看哈希值)
构建发行版
关闭
requests_unixsocket2-0.4.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 929c58ecc5981f3d127661ceb9ec8c76e0f08d31c52e44ab1462ac0dcd55b5f5 |
|
MD5 | f55a79dd0f8065d9918b571cf4c69331 |
|
BLAKE2b-256 | 146688737c8720685f44e6a1c04cb2185301a6ec4538ac82324f0f33c9dc5fd5 |
关闭
requests_unixsocket2-0.4.2-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 701fcd49d74bc0f759bbe45c4dfda0045fd89652948c2b473b1a312214c3770b |
|
MD5 | 1645389d9099dac77c882ecaefa07433 |
|
BLAKE2b-256 | 4334b1072b2b1310572d8b801adcf3b148197eea2f8207f3750f73fcd2a6db5d |