Metadata-Version: 2.1
Name: cgiproxy
Version: 18.12.25
Summary: The simple HTTP proxy.
Home-page: https://github.com/Datamart/CGI-Proxy
Author: Valentin Podkamennyi, Alex Krailo
License: Apache 2.0
Description: # CGI Proxy [![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) [![PyPI Version](https://img.shields.io/pypi/v/cgiproxy.svg)](https://pypi.org/project/cgiproxy/) [![Python Versions](https://img.shields.io/pypi/pyversions/cgiproxy.svg)](https://pypi.org/project/cgiproxy/)
        
        Simple CGI HTTP Proxy.
        * Sets the `X-Forwarded-For` header with the client IP address;
        * Sets the `User-Agent` header with the client' `User-Agent` string.
        * Decodes `gzip`-ed content.
        * Prints all errors to `stderr`.
        * Uses `urllib2` for Python 2 and `urllib.request` for Python 3.
        
        # Installation
        
        Install from PyPI using `pip`:
        
        ```bash
        $ pip install cgiproxy
        ```
        
        
        # Methods
        
        ### do_get(url, headers=None)
        Performs `GET` request.
        
        **Arguments:**
        * `url` - The request URL as `str`.
        * `headers` - Optional HTTP request headers as `dict`.
        
        **Returns:**
        * A tuple of `(content, status_code, response_headers)`
        
        
        ### do_head(url, headers=None)
        Performs `HEAD` request.
        
        **Arguments:**
        * `url` - The request URL as `str`.
        * `headers` - Optional HTTP request headers as `dict`.
        
        **Returns:**
        * A tuple of `(content='', status_code, response_headers)`
        
        
        ### do_post(url, data=None, headers=None)
        Performs `POST` request. Converts query to `POST` params if `data` is `None`.
        
        **Arguments:**
        * `url` - The request URL as `str`.
        * `data` - Optional HTTP POST data as URL-encoded `str`.
        * `headers` - Optional HTTP request headers as `dict`.
        
        **Returns:**
        * A tuple of `(content, status_code, response_headers)`
        
        
        ### get_http_status(url, headers=None)
        Gets HTTP status code.
        
        **Arguments:**
        * `url` - The request URL as `str`.
        * `headers` - Optional HTTP request headers as `dict`.
        
        **Returns:**
        * An HTTP status code.
        
        
        ### get_response_headers(url, headers=None)
        Gets HTTP response headers.
        
        **Arguments:**
        * `url` - The request URL as `str`.
        * `headers` - Optional HTTP request headers as `dict`.
        
        **Returns:**
        * An HTTP response headers as `dict`.
        
        
        # Examples
        
        ```python
        import cgiproxy
        
        status = cgiproxy.get_http_status('https://www.pageportrait.com/')
        print(200 == status)
        
        headers = cgiproxy.get_response_headers('https://komito.net/')
        print(headers.get('content-type'))
        
        content, status, headers = cgiproxy.do_head('https://www.dtm.io/')
        print('' == content)
        print(200 == status)
        print(headers.get('content-type'))
        
        content, status, headers = cgiproxy.do_get('https://www.dtm.io/', headers={
            'User-Agent': 'Mozilla/5.0 (compatible; Darwin/18.2.0) cgiproxy/18.12',
            'X-Custom-Header': 'value'
        })
        print('' != content)
        print(200 == status)
        print(headers.get('content-type'))
        
        content, status, headers = cgiproxy.do_post('https://example.com/', data='aaa%3Dbbb%26ccc%3Dddd')
        print('' != content)
        print(200 == status)
        print(headers.get('content-type'))
        ```
        
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
