Skip to main content

Proxy (HTTP, SOCKS) transports for httpx

Project description

httpx-socks

CI Coverage Status PyPI version

The httpx-socks package provides proxy transports for httpx client. SOCKS4(a), SOCKS5(h), HTTP (tunneling) proxy supported. It uses python-socks for core proxy functionality.

Requirements

  • Python >= 3.6
  • httpx>=0.21.0
  • python-socks>=2.0.0
  • async-timeout>=3.0.1 (optional)
  • trio>=0.16.0 (optional)

Installation

only sync proxy support:

pip install httpx-socks

to include optional asyncio support (it requires async-timeout):

pip install httpx-socks[asyncio]

to include optional trio support:

pip install httpx-socks[trio]

Usage

sync transport

import httpx
from httpx_socks import SyncProxyTransport

def fetch(url):
    transport = SyncProxyTransport.from_url('socks5://user:password@127.0.0.1:1080')
    with httpx.Client(transport=transport) as client:
        res = client.get(url)
        return res.text

async transport (asyncio, trio)

import httpx
from httpx_socks import AsyncProxyTransport

async def fetch(url):
    transport = AsyncProxyTransport.from_url('socks5://user:password@127.0.0.1:1080')
    async with httpx.AsyncClient(transport=transport) as client:
        res = await client.get(url)
        return res.text

secure proxy connections (aka "HTTPS proxies", experimental feature, both sync and async support)

import ssl
import httpx
from httpx_socks import AsyncProxyTransport

async def fetch(url):
    proxy_ssl = ssl.SSLContext(ssl.PROTOCOL_TLS)
    proxy_ssl.verify_mode = ssl.CERT_REQUIRED
    proxy_ssl.load_verify_locations(...)
    
    transport = AsyncProxyTransport.from_url('http://user:password@127.0.0.1:8080', proxy_ssl=proxy_ssl)
    async with httpx.AsyncClient(transport=transport) as client:
        res = await client.get(url)
        return res.text

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

httpx_socks-0.10.1.tar.gz (94.0 kB view details)

Uploaded Source

Built Distribution

httpx_socks-0.10.1-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file httpx_socks-0.10.1.tar.gz.

File metadata

  • Download URL: httpx_socks-0.10.1.tar.gz
  • Upload date:
  • Size: 94.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for httpx_socks-0.10.1.tar.gz
Algorithm Hash digest
SHA256 14819689f569ae9079081a4c594d6a2ee915bf72ca30f210658e40ad4c5a7bcb
MD5 bf5fa9d41f0120011dab7a42fcb8803a
BLAKE2b-256 47663216fbeb94585f4d2ef1d544bb66e79215e17b8f404690371e9ddc0e252e

See more details on using hashes here.

File details

Details for the file httpx_socks-0.10.1-py3-none-any.whl.

File metadata

  • Download URL: httpx_socks-0.10.1-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for httpx_socks-0.10.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1b37f30d6e90242882b58cc493c3091c8d50cc5303060498d0a0a711836e1f42
MD5 180c1594c6c186917cc2476c4bb0e832
BLAKE2b-256 9bed6025a6bf483af4cf96f93f7968e7757e5377960f175b04f5981a673c32ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page