Skip to content

Add pycurl extension for proxy header support#7

Merged
proxymesh merged 5 commits intomainfrom
feature/pycurl-extension
Feb 3, 2026
Merged

Add pycurl extension for proxy header support#7
proxymesh merged 5 commits intomainfrom
feature/pycurl-extension

Conversation

@proxymesh
Copy link
Copy Markdown
Owner

Summary

  • Add pycurl_proxy module with ProxyCurl class wrapping pycurl
  • Support sending custom headers to proxy via CURLOPT_PROXYHEADER
  • Capture proxy CONNECT response headers via HEADERFUNCTION callback
  • Add convenience functions (get, post, etc.) matching existing API style
  • Add documentation in docs/pycurl.rst
  • Add PycurlTest to test harness

Usage

from python_proxy_headers.pycurl_proxy import ProxyCurl, get

# Using the class
curl = ProxyCurl(proxy_headers={'X-ProxyMesh-Country': 'US'})
response = curl.get('https://example.com', proxy='http://proxy:8080')
print(response.proxy_headers)  # Headers from proxy CONNECT response

# Using convenience function  
response = get('https://example.com',
               proxy='http://proxy:8080',
               proxy_headers={'X-Custom': 'value'})

Test plan

  • Run python test_proxy_headers.py pycurl with a proxy that returns X-ProxyMesh-IP
  • Verify proxy headers are sent during CONNECT
  • Verify proxy response headers are captured

Cursor added 5 commits January 31, 2026 00:02
- Add ProxyCurl class wrapping pycurl with proxy header capabilities
- Support sending custom headers to proxy via CURLOPT_PROXYHEADER
- Capture proxy CONNECT response headers via HEADERFUNCTION callback
- Add convenience functions (get, post, etc.) matching existing API style
- Add documentation in docs/pycurl.rst
Rewrite pycurl_proxy to provide:

1. Low-level helpers for existing pycurl code:
   - set_proxy_headers(curl, headers) - sets PROXYHEADER on any Curl instance
   - HeaderCapture(curl) - captures and parses proxy/origin headers

2. High-level convenience functions (get, post, etc.) for simple use cases

This approach is more "pycurl-native" - users can add proxy header support
to existing code with just 2 lines instead of rewriting their code.
@proxymesh proxymesh merged commit 7a92676 into main Feb 3, 2026
@proxymesh proxymesh deleted the feature/pycurl-extension branch February 8, 2026 16:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant