GithubHelp home page GithubHelp logo

httpie-unixsocket's Introduction

httpie-unixsocket

UNIX socket transport plugin for HTTPie.

Latest Version on PyPI

Installation

$ pip install httpie-unixsocket

Example usage

To query Docker for info, using /var/run/docker.sock:

$ http http+unix://%2Fvar%2Frun%2Fdocker.sock/info

Requirements

httpie-unixsocket's People

Contributors

jkbrzt avatar msabramo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

httpie-unixsocket's Issues

Look into supporting nicer URL syntax of curl-unix-socket

Inspired by issue #7, as I think the current syntax is ugly and too error-prone.

root@db2722aaf51d:/# curl-unix-socket unix:///var/run/docker.sock:/info
{"Containers":2,"Debug":1,"DockerRootDir":"/var/lib/docker","Driver":"btrfs","DriverStatus":[],"ExecutionDriver":"native-0.2","ID":"EXI6:MA6J:YU45:24S3:CA6L:37PQ:JLKG:WPWI:5NFP:L3XW:WECP:HWK3","IPv4Forwarding":1,"Images":86,"IndexServerAddress":"https://index.docker.io/v1/","InitPath":"/usr/bin/docker","InitSha1":"","KernelVersion":"4.0.0-rc3","Labels":null,"MemTotal":33343193088,"MemoryLimit":1,"NCPU":8,"NEventsListener":0,"NFd":24,"NGoroutines":53,"Name":"debian","OperatingSystem":"Debian GNU/Linux 8 (jessie)","RegistryConfig":{"IndexConfigs":{"docker.io":{"Mirrors":null,"Name":"docker.io","Official":true,"Secure":true}},"InsecureRegistryCIDRs":["127.0.0.0/8"]},"SwapLimit":1,"SystemTime":"2015-03-18T12:00:18.261465223-07:00"}

Cc: @jakubroztocil, @jfrazelle

Breaks Ubuntu due to a Requests module upgrade

Downloading/unpacking git+https://github.com/msabramo/httpie-unixsocket.git
  Cloning https://github.com/msabramo/httpie-unixsocket.git to /tmp/pip-J2zDhW-build
  Running setup.py (path:/tmp/pip-J2zDhW-build/setup.py) egg_info for package from git+https://github.com/msabramo/httpie-unixsocket.git

Downloading/unpacking httpie>=0.7.0 from https://pypi.python.org/packages/2.7/h/httpie/httpie-0.9.0-py2.py3-none-any.whl#md5=76c94093b32e5257c097b15519f2b64a (from httpie-unixsocket==1.0.2)
Downloading/unpacking requests-unixsocket (from httpie-unixsocket==1.0.2)
  Downloading requests-unixsocket-0.1.4.tar.gz
  Running setup.py (path:/tmp/pip_build_root/requests-unixsocket/setup.py) egg_info for package requests-unixsocket

    Installed /tmp/pip_build_root/requests-unixsocket/pbr-0.10.7-py2.7.egg
    [pbr] Processing SOURCES.txt
    warning: LocalManifestMaker: standard file '-c' not found

    warning: no previously-included files found matching '.gitignore'
    warning: no previously-included files found matching '.gitreview'
    warning: no previously-included files matching '*.pyc' found anywhere in distribution
Downloading/unpacking requests>=2.3.0 from https://pypi.python.org/packages/py2.py3/r/requests/requests-2.5.1-py2.py3-none-any.whl#md5=11dc91bc96c5c5e0b566ce8f9c9644ab (from httpie>=0.7.0->httpie-unixsocket==1.0.2)
Downloading/unpacking Pygments>=1.5 from https://pypi.python.org/packages/2.7/P/Pygments/Pygments-2.0.2-py2-none-any.whl#md5=98f29db02f4b22f58a2d3f60646e1e1f (from httpie>=0.7.0->httpie-unixsocket==1.0.2)
Installing collected packages: httpie, requests-unixsocket, httpie-unixsocket, requests, Pygments
  Found existing installation: httpie 0.8.0
    Uninstalling httpie:
      Successfully uninstalled httpie
  Running setup.py install for requests-unixsocket
    [pbr] Reusing existing SOURCES.txt
  Running setup.py install for httpie-unixsocket

  Found existing installation: requests 2.3.0
    Uninstalling requests:
      Successfully uninstalled requests
  Found existing installation: Pygments 1.6
    Uninstalling Pygments:
      Successfully uninstalled Pygments
Successfully installed httpie requests-unixsocket httpie-unixsocket requests Pygments
Cleaning up...
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    load_entry_point('pip==1.5.6', 'console_scripts', 'pip')()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 356, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2476, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2190, in load
    ['__name__'])
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 61, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/lib/python2.7/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/lib/python2.7/dist-packages/pip/download.py", line 25, in <module>
    from requests.compat import IncompleteRead
ImportError: cannot import name IncompleteRead

Upload to PyPI

... or change the misleading installation instructions, please.

no such file or directory

# proof the file is there
root@db2722aaf51d:/# ls /var/run/
docker.sock  lock  utmp

# when i try w httpie
root@db2722aaf51d:/# http http+unix://%2Fvar%2Frun%sFdocker.sock/info

http: error: ConnectionError: ('Connection aborted.', error(2, 'No such file or directory'))

# when i try w curl
root@db2722aaf51d:/# curl-unix-socket unix:///var/run/docker.sock:/info
{"Containers":2,"Debug":1,"DockerRootDir":"/var/lib/docker","Driver":"btrfs","DriverStatus":[],"ExecutionDriver":"native-0.2","ID":"EXI6:MA6J:YU45:24S3:CA6L:37PQ:JLKG:WPWI:5NFP:L3XW:WECP:HWK3","IPv4Forwarding":1,"Images":86,"IndexServerAddress":"https://index.docker.io/v1/","InitPath":"/usr/bin/docker","InitSha1":"","KernelVersion":"4.0.0-rc3","Labels":null,"MemTotal":33343193088,"MemoryLimit":1,"NCPU":8,"NEventsListener":0,"NFd":24,"NGoroutines":53,"Name":"debian","OperatingSystem":"Debian GNU/Linux 8 (jessie)","RegistryConfig":{"IndexConfigs":{"docker.io":{"Mirrors":null,"Name":"docker.io","Official":true,"Secure":true}},"InsecureRegistryCIDRs":["127.0.0.0/8"]},"SwapLimit":1,"SystemTime":"2015-03-18T12:00:18.261465223-07:00"}

TypeError: HTTPConnection.request() got an unexpected keyword argument 'chunked'

When trying to use httpie with a unix socket, I'm getting the mentioned error with the following traceback:

$  httpie/bin/http --debug http+unix://%2Fsome%2Fsocket/path
HTTPie 3.2.2
Requests 2.31.0
Pygments 2.15.1
Python 3.11.2 (main, May 30 2023, 17:45:26) [GCC 12.2.0]
/home/ack/Desktop/httpie/bin/python3
Linux 6.2.0-20-generic

<Environment {'apply_warnings_filter': <function Environment.apply_warnings_filter at 0x7ff70d8b0680>,
 'args': Namespace(),
 'as_silent': <function Environment.as_silent at 0x7ff70d8b0540>,
 'colors': 256,
 'config': {'default_options': []},
 'config_dir': PosixPath('/home/ack/.config/httpie'),
 'devnull': <property object at 0x7ff70d895ee0>,
 'is_windows': False,
 'log_error': <function Environment.log_error at 0x7ff70d8b05e0>,
 'program_name': 'http',
 'quiet': 0,
 'rich_console': <functools.cached_property object at 0x7ff70d89eed0>,
 'rich_error_console': <functools.cached_property object at 0x7ff70d89f5d0>,
 'show_displays': True,
 'stderr': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>,
 'stderr_isatty': True,
 'stdin': <_io.TextIOWrapper name='<stdin>' mode='r' encoding='utf-8'>,
 'stdin_encoding': 'utf-8',
 'stdin_isatty': True,
 'stdout': <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>,
 'stdout_encoding': 'utf-8',
 'stdout_isatty': True}>

<PluginManager {'adapters': [<class 'httpie_unixsocket.UnixSocketTransportPlugin'>],
 'auth': [<class 'httpie.plugins.builtin.BasicAuthPlugin'>,
          <class 'httpie.plugins.builtin.DigestAuthPlugin'>,
          <class 'httpie.plugins.builtin.BearerAuthPlugin'>],
 'converters': [],
 'formatters': [<class 'httpie.output.formatters.headers.HeadersFormatter'>,
                <class 'httpie.output.formatters.json.JSONFormatter'>,
                <class 'httpie.output.formatters.xml.XMLFormatter'>,
                <class 'httpie.output.formatters.colors.ColorFormatter'>]}>

>>> requests.request(**{'auth': None,
 'data': RequestJSONDataDict(),
 'headers': <HTTPHeadersDict('User-Agent': b'HTTPie/3.2.2')>,
 'method': 'get',
 'params': <generator object MultiValueOrderedDict.items at 0x7ff70d39f840>,
 'url': 'http+unix://%2Fsome%2Fsocket/path'})


http: error: TypeError: HTTPConnection.request() got an unexpected keyword argument 'chunked'


Traceback (most recent call last):
  File "/home/ack/Desktop/httpie/bin/http", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/ack/Desktop/httpie/lib/python3.11/site-packages/httpie/__main__.py", line 9, in main
    exit_status = main()
                  ^^^^^^
  File "/home/ack/Desktop/httpie/lib/python3.11/site-packages/httpie/core.py", line 162, in main
    return raw_main(
           ^^^^^^^^^
  File "/home/ack/Desktop/httpie/lib/python3.11/site-packages/httpie/core.py", line 140, in raw_main
    handle_generic_error(e)
  File "/home/ack/Desktop/httpie/lib/python3.11/site-packages/httpie/core.py", line 100, in raw_main
    exit_status = main_program(
                  ^^^^^^^^^^^^^
  File "/home/ack/Desktop/httpie/lib/python3.11/site-packages/httpie/core.py", line 213, in program
    for message in messages:
  File "/home/ack/Desktop/httpie/lib/python3.11/site-packages/httpie/client.py", line 113, in collect_messages
    response = requests_session.send(
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ack/Desktop/httpie/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ack/Desktop/httpie/lib/python3.11/site-packages/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/home/ack/Desktop/httpie/lib/python3.11/site-packages/urllib3/connectionpool.py", line 790, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/home/ack/Desktop/httpie/lib/python3.11/site-packages/urllib3/connectionpool.py", line 496, in _make_request
    conn.request(
TypeError: HTTPConnection.request() got an unexpected keyword argument 'chunked'

These are the versions I'm using:

$  httpie/bin/pip freeze
certifi==2023.5.7
charset-normalizer==3.1.0
defusedxml==0.7.1
httpie==3.2.2
httpie-unixsocket==0.0.0
idna==3.4
markdown-it-py==3.0.0
mdurl==0.1.2
multidict==6.0.4
Pygments==2.15.1
PySocks==1.7.1
requests==2.31.0
requests-toolbelt==1.0.0
requests-unixsocket==0.3.0
rich==13.4.2
urllib3==2.0.3

Not working

@msabramo thanks for the module but unfortunately, it's not working:

Versions:

httpie==0.9.2
httpie-unixsocket==0.0.0

Python 2.7.6

Log:

#> http http+unix:///var/run/docker.sock:/info

http: error: InvalidURL: Invalid URL u'http+unix:///var/run/docker.sock:/info': No host supplied
``

Any ideas?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.