跳转到主要内容

使用requests通过UNIX域套接字进行HTTP通信

项目描述

requests-unixsocket2

Latest Version on PyPI pipeline status coverage report Latest Release

使用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上运行。

另请参阅

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

requests_unixsocket2-0.4.2.tar.gz (6.4 kB 查看哈希值)

上传时间 源代码

构建发行版

requests_unixsocket2-0.4.2-py3-none-any.whl (7.8 kB 查看哈希值)

上传时间 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面