You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge main into feature/php-examples and resolve README conflicts.
Keep the updated Ruby docs from main, retain the PHP section, and normalize PHP PROXY_URL handling so host-only values like us-ca.proxymesh.com are testable across all PHP examples and the PHP test runner.
Made-with: Cursor
|[cloudscraper](https://github.com/venomous/cloudscraper)|[cloudscraper-proxy-headers.py](python/cloudscraper-proxy-headers.py)| Cloudflare bypass with proxy headers |
62
63
|[autoscraper](https://github.com/alirezamika/autoscraper)|[autoscraper-proxy-headers.py](python/autoscraper-proxy-headers.py)| Automatic web scraping with proxy headers |
63
64
65
+
> **Note:** Most Python HTTP libraries do not expose custom headers on HTTPS `CONNECT` tunneling by default. These examples use [python-proxy-headers](https://github.com/proxymesh/python-proxy-headers) adapters to send proxy headers and read proxy response headers consistently.
66
+
64
67
### Basic Proxy Examples
65
68
66
69
*[requests-proxy.py](python/requests-proxy.py) - Basic proxy usage with requests
> **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](https://github.com/proxymesh/javascript-proxy-headers) for extension modules that add this capability.
120
+
121
+
## Ruby Proxy Examples
122
+
123
+
These examples use [Bundler](https://bundler.io/). Install Ruby development headers and libcurl first so native extensions can compile (Debian/Ubuntu: `ruby-dev` and `libcurl4-openssl-dev`; Fedora: `ruby-devel` and `libcurl-devel`).
|[HTTP.rb](https://github.com/httprb/http)|[http-rb-proxy.rb](ruby/http-rb-proxy.rb)| Lightweight DSL; proxy via `HTTP.via(host, port, user, pass)`|
160
+
|[RestClient](https://github.com/rest-client/rest-client)|[rest-client-proxy.rb](ruby/rest-client-proxy.rb)| Simple REST API; proxy via `RestClient.proxy = url`|
161
+
|[Typhoeus](https://github.com/typhoeus/typhoeus)|[typhoeus-proxy.rb](ruby/typhoeus-proxy.rb)| libcurl via Ethon; `proxy:` URL on the request |
162
+
|[Excon](https://github.com/excon/excon)|[excon-proxy.rb](ruby/excon-proxy.rb)| Fast client; `Excon.get(url, proxy: url)`|
163
+
|[HTTPClient](https://github.com/nahi/httpclient)|[httpclient-proxy.rb](ruby/httpclient-proxy.rb)| LWP-like client; pass full proxy URL to `HTTPClient.new`|
|[Nokogiri](https://nokogiri.org/)|[nokogiri-proxy.rb](ruby/nokogiri-proxy.rb)| Parse HTML after a proxied `Net::HTTP` fetch |
166
+
167
+
Libraries above are actively maintained on RubyGems (releases within the last year as of early 2026). Like most high-level Ruby HTTP clients, they do not expose custom headers on the HTTPS `CONNECT` tunnel to the proxy or proxy response headers; for ProxyMesh-style custom proxy headers, lower-level clients or a dedicated helper library may be required.
110
168
111
169
## PHP Proxy Examples
112
170
@@ -143,14 +201,78 @@ php php/run_tests.php
143
201
144
202
> **Note:** See [php-proxy-headers](https://github.com/proxymeshai/php-proxy-headers) for extensions that add custom proxy header support.
145
203
146
-
## Documentation
204
+
These examples use [Bundler](https://bundler.io/). Install Ruby development headers and libcurl first so native extensions can compile (Debian/Ubuntu: `ruby-dev` and `libcurl4-openssl-dev`; Fedora: `ruby-devel` and `libcurl-devel`).
147
205
148
-
For more information on using proxy headers with Python:
|[HTTP.rb](https://github.com/httprb/http)|[http-rb-proxy.rb](ruby/http-rb-proxy.rb)| Lightweight DSL; proxy via `HTTP.via(host, port, user, pass)`|
241
+
|[RestClient](https://github.com/rest-client/rest-client)|[rest-client-proxy.rb](ruby/rest-client-proxy.rb)| Simple REST API; proxy via `RestClient.proxy = url`|
242
+
|[Typhoeus](https://github.com/typhoeus/typhoeus)|[typhoeus-proxy.rb](ruby/typhoeus-proxy.rb)| libcurl via Ethon; `proxy:` URL on the request |
243
+
|[Excon](https://github.com/excon/excon)|[excon-proxy.rb](ruby/excon-proxy.rb)| Fast client; `Excon.get(url, proxy: url)`|
244
+
|[HTTPClient](https://github.com/nahi/httpclient)|[httpclient-proxy.rb](ruby/httpclient-proxy.rb)| LWP-like client; pass full proxy URL to `HTTPClient.new`|
|[Nokogiri](https://nokogiri.org/)|[nokogiri-proxy.rb](ruby/nokogiri-proxy.rb)| Parse HTML after a proxied `Net::HTTP` fetch |
247
+
248
+
Libraries above are actively maintained on RubyGems (releases within the last year as of early 2026). Like most high-level Ruby HTTP clients, they do not expose custom headers on the HTTPS `CONNECT` tunnel to the proxy or proxy response headers; for ProxyMesh-style custom proxy headers, lower-level clients or a dedicated helper library may be required.
249
+
250
+
## Related Documentation
251
+
252
+
More examples and language-specific proxy-header tooling:
253
+
254
+
### Python
149
255
150
256
*[python-proxy-headers on PyPI](https://pypi.org/project/python-proxy-headers/)
0 commit comments