Example code for using proxy servers in different programming languages. Currently we have examples for these languages:
- Python
- JavaScript / Node.js
- Ruby
The python-proxy-headers library enables sending custom headers to proxy servers and receiving proxy response headers. This is essential for services like ProxyMesh that use custom headers for country selection and IP assignment.
Installation:
pip install python-proxy-headersRunning Examples:
All examples read proxy configuration from environment variables:
# Required: Set your proxy URL
export PROXY_URL='http://user:pass@proxy.example.com:8080'
# Optional: Custom test URL (default: https://api.ipify.org?format=json)
export TEST_URL='https://httpbin.org/ip'
# Optional: Send a custom header to the proxy
export PROXY_HEADER='X-ProxyMesh-Country'
export PROXY_VALUE='US'
# Optional: Read a specific header from the response
export RESPONSE_HEADER='X-ProxyMesh-IP'
# Run a single example
python python/requests-proxy-headers.py
# Run all examples as tests
python python/run_tests.py
# Run specific examples
python python/run_tests.py requests-proxy-headers httpx-proxy-headersExamples:
| Library | Example | Description |
|---|---|---|
| requests | requests-proxy-headers.py | Simple HTTP requests with proxy headers |
| requests | requests-proxy-headers-session.py | Session-based requests for connection pooling |
| urllib3 | urllib3-proxy-headers.py | Low-level HTTP client with proxy headers |
| aiohttp | aiohttp-proxy-headers.py | Async HTTP client with proxy headers |
| httpx | httpx-proxy-headers.py | Modern HTTP client with proxy headers |
| httpx | httpx-async-proxy-headers.py | Async httpx with proxy headers |
| pycurl | pycurl-proxy-headers.py | libcurl bindings with proxy headers |
| pycurl | pycurl-proxy-headers-lowlevel.py | Low-level pycurl integration |
| cloudscraper | cloudscraper-proxy-headers.py | Cloudflare bypass with proxy headers |
| autoscraper | autoscraper-proxy-headers.py | Automatic web scraping with proxy headers |
- requests-proxy.py - Basic proxy usage with requests
- requests-random-proxy.py - Random proxy rotation
- scrapy-proxy-headers.py - Scrapy spider with proxy headers
Installation:
cd javascript
npm installRunning Examples:
# Required: Set your proxy URL
export PROXY_URL='http://user:pass@proxy.example.com:8080'
# Run a single example
node javascript/axios-proxy.js
# Run all examples as tests
node javascript/run_tests.js
# Run specific examples
node javascript/run_tests.js axios gotExamples:
| Library | Example | Description |
|---|---|---|
| axios | axios-proxy.js | Popular promise-based HTTP client |
| node-fetch | node-fetch-proxy.js | Fetch API for Node.js |
| got | got-proxy.js | Human-friendly HTTP client |
| undici | undici-proxy.js | Fast HTTP client (powers Node.js fetch) |
| superagent | superagent-proxy.js | Flexible HTTP client |
| needle | needle-proxy.js | Lean HTTP client |
| puppeteer | puppeteer-proxy.js | Headless Chrome automation |
| playwright | playwright-proxy.js | Browser automation |
| cheerio | cheerio-proxy.js | HTML parsing with node-fetch |
Note: None of these libraries currently support sending custom headers to the proxy during HTTPS CONNECT tunneling or reading proxy response headers. See javascript-proxy-headers for extension modules that add this capability.
- requests_proxy.rb - Ruby HTTP with proxy, from rpolley
For more information on using proxy headers with Python:
If you have example code for another language, please share it with a Pull Request.