# python-requests-unixsocket **Repository Path**: openkylin/python-requests-unixsocket ## Basic Information - **Project Name**: python-requests-unixsocket - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: openkylin/yangtze - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-28 - **Last Updated**: 2026-06-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README requests-unixsocket =================== .. image:: https://badge.fury.io/py/requests-unixsocket.svg :target: https://badge.fury.io/py/requests-unixsocket :alt: Latest Version on PyPI .. image:: https://travis-ci.org/msabramo/requests-unixsocket.svg?branch=master :target: https://travis-ci.org/msabramo/requests-unixsocket Use `requests `_ to talk HTTP via a UNIX domain socket Usage ----- Explicit ++++++++ You can use it by instantiating a special ``Session`` object: .. code-block:: python 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)) Implicit (monkeypatching) +++++++++++++++++++++++++ Monkeypatching allows you to use the functionality in this module, while making minimal changes to your code. Note that in the above example we had to instantiate a special ``requests_unixsocket.Session`` object and call the ``get`` method on that object. Calling ``requests.get(url)`` (the easiest way to use requests and probably very common), would not work. But we can make it work by doing monkeypatching. You can monkeypatch globally: .. code-block:: python import requests_unixsocket requests_unixsocket.monkeypatch() r = requests.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info') assert r.status_code == 200 or you can do it temporarily using a context manager: .. code-block:: python import requests_unixsocket with requests_unixsocket.monkeypatch(): r = requests.get('http+unix://%2Fvar%2Frun%2Fdocker.sock/info') assert r.status_code == 200 Abstract namespace sockets ++++++++++++++++++++++++++ To connect to an `abstract namespace socket `_ (Linux only), prefix the name with a NULL byte (i.e.: `\0`) - e.g.: .. code-block:: python import requests_unixsocket session = requests_unixsocket.Session() res = session.get('http+unix://\0test_socket/get') print(res.text) For an example program that illustrates this, see ``examples/abstract_namespace.py`` in the git repo. Since abstract namespace sockets are specific to Linux, the program will only work on Linux. See also -------- - https://github.com/httpie/httpie-unixsocket - a plugin for `HTTPie `_ that allows you to interact with UNIX domain sockets