Metadata-Version: 1.1
Name: httphq
Version: 0.0.5
Summary: HTTP Request & Response service
Home-page: https://github.com/Lispython/httphq
Author: Alexandr Lispython
Author-email: alex@obout.ru
License: BSD
Description: 
        HTTP Request & Response service
        ===============================
        
        Simple service for testing HTTP/HTTPS requests.
        All endpoint responses are JSON-encoded exclude `/status/{status_code: int} <http://h.wrttn.me/status/200>`_.
        It's useful for testing how your own scripts deal with varying responses and requests.
        
        .. image:: https://travis-ci.org/Lispython/httphq.png
        	   :target: https://travis-ci.org/Lispython/httphq
        
        INSTALLATION
        ------------
        
        You can use ``easy_install`` or ``pip`` to install `httphq`:
        
        ``pip install httphq``
        
        or
        
        ``easy_install httphq``
        
        ENDPOINTS
        ---------
        
        - `/ <http://h.wrttn.me/>`_ —  Show home page
        - `/ip <http://h.wrttn.me/ip>`_ — Returns client IP and proxies
        - `/get <http://h.wrttn.me/get>`_  — GET method
        - `/post <http://h.wrttn.me/post>`_ — POST method
        - `/put <http://h.wrttn.me/put>`_ — PUT method
        - `/head <http://h.wrttn.me/head>`_ — HEAD method
        - `/options <http://h.wrttn.me/options>`_ — OPTIONS method
        - `/delete <http://h.wrttn.me/delete>`_ — DELETE method
        - `/user-agent <http://h.wrttn.me/user-agent>`_ — Returns user agent
        - `/headers <http://h.wrttn.me/headers>`_ — Returns sended headers
        - `/cookies <http://h.wrttn.me/cookies>`_ — Returns all user cookies
        - `/cookies/set/{name: str}/{value: str} <http://h.wrttn.me/cookies/set/test_name/test_value>`_ — Setup given name and value on client
        - `/status/{status_code: int} <http://h.wrttn.me/status/403>`_ — Returns given HTTP status code
        - `/basic-auth/{username: str}/{password: str} <http://h.wrttn.me/basic-auth/test_username/test_password>`_ — Basic access authentication
        - `/digest-auth/{qop: auth | auth-int}/{username: str}/{password: str} <http://h.wrttn.me/digest-auth/auth/test_username/test_password>`_ — Digest access authentication
        
        
        HTTP status codes
        -----------------
        
        1xx Informational
        ~~~~~~~~~~~~~~~~~
        
        - `100 <http://h.wrttn.me/status/100>`_ — Continue
        - `101 <http://h.wrttn.me/status/101>`_ — Switching Protocols
        
        2xx Success
        ~~~~~~~~~~~
        - `200 <http://h.wrttn.me/status/200>`_ — OK
        - `201 <http://h.wrttn.me/status/201>`_ — Created
        - `202 <http://h.wrttn.me/status/202>`_ — Accepted
        - `203 <http://h.wrttn.me/status/203>`_ — Non-Authoritative Information
        - `204 <http://h.wrttn.me/status/204>`_ — No Content [ Won't return a response body ]
        - `205 <http://h.wrttn.me/status/205>`_ — Reset Content [ Won't return a response body ]
        - `206 <http://h.wrttn.me/status/206>`_ — Partial Content
        
        3xx Redirection
        ~~~~~~~~~~~~~~~
        - `300 <http://h.wrttn.me/status/300>`_ — Multiple Choices
        - `301 <http://h.wrttn.me/status/301>`_ — Moved Permanently [ Will also return this extra header: Location: http://http.obout.ru ]
        - `302 <http://h.wrttn.me/status/302>`_ — Found [ Will also return this extra header: Location: http://h.wrttn.me ]
        - `303 <http://h.wrttn.me/status/303>`_ — See Other [ Will also return this extra header: Location: http://h.wrttn.me ]
        - `304 <http://h.wrttn.me/status/304>`_ — Not Modified [ Won't return a response body ]
        - `305 <http://h.wrttn.me/status/305>`_ — Use Proxy [ Will also return this extra header: Location: http://h.wrttn.me ]
        - `306 <http://h.wrttn.me/status/306>`_ — (Unused)
        - `307 <http://h.wrttn.me/status/307>`_ — Temporary Redirect [ Will also return this extra header: Location: http://h.wrttn.me ]
        
        4xx Client Error
        ~~~~~~~~~~~~~~~~
        
        - `400 <http://h.wrttn.me/status/400>`_ — Bad Request
        - `401 <http://h.wrttn.me/status/401>`_ — Unauthorized [ Will also return this extra header: WWW-Authenticate: Basic realm="Fake Realm" ]
        - `402 <http://h.wrttn.me/status/402>`_ — Payment Required
        - `403 <http://h.wrttn.me/status/403>`_ — Forbidden
        - `404 <http://h.wrttn.me/status/404>`_ — Not Found
        - `405 <http://h.wrttn.me/status/405>`_ — Method Not Allowed
        - `406 <http://h.wrttn.me/status/406>`_ — Not Acceptable
        - `407 <http://h.wrttn.me/status/407>`_ — Proxy Authentication Required [ Will also return this extra header: Proxy-Authenticate: Basic realm="Fake Realm" ]
        - `408 <http://h.wrttn.me/status/408>`_ — Request Timeout
        - `409 <http://h.wrttn.me/status/409>`_ — Conflict
        - `410 <http://h.wrttn.me/status/410>`_ — Gone
        - `411 <http://h.wrttn.me/status/411>`_ — Length Required
        - `412 <http://h.wrttn.me/status/412>`_ — Precondition Failed
        - `413 <http://h.wrttn.me/status/413>`_ — Request Entity Too Large
        - `414 <http://h.wrttn.me/status/414>`_ — Request-URI Too Long
        - `415 <http://h.wrttn.me/status/415>`_ — Unsupported Media Type
        - `416 <http://h.wrttn.me/status/416>`_ — Requested Range Not Satisfiable
        - `417 <http://h.wrttn.me/status/417>`_ — Expectation Failed
        
        
        5xx Server Error
        ~~~~~~~~~~~~~~~~
        
        - `500 <http://h.wrttn.me/status/500>`_ — Internal Server Error
        - `501 <http://h.wrttn.me/status/501>`_ — Not Implemented
        - `502 <http://h.wrttn.me/status/502>`_ — Bad Gateway
        - `503 <http://h.wrttn.me/status/503>`_ — Service Unavailable
        - `504 <http://h.wrttn.me/status/504>`_ — Gateway Timeout
        - `505 <http://h.wrttn.me/status/505>`_ — HTTP Version Not Supported
        
        
        EXAMPLES
        --------
        
        .. code-block:: text
        
            curl http://h.wrttn.me/get | python -mjson.tool
            {
                "args": {},
                "headers": {
                    "Accept": "*/*",
                    "Host": "h.wrttn.me",
            "User-Agent": "curl/7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15"
            },
            "url": " http://h.wrttn.me/get"
            }
        
        
            curl -X POST -F "name=value" http://h.wrttn.me/post | python -mjson.tool
            {
                "args": {
                    "name": [
                        "value"
                    ]
                },
                "body": "------------------------------eb288eb3d3e4\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nvalue\r\n------------------------------eb288eb3d3e4--\r\n",
                "files": {},
                "headers": {
                    "Accept": "*/*",
                    "Content-Length": "144",
                    "Content-Type": "multipart/form-data; boundary=----------------------------eb288eb3d3e4",
                    "Expect": "100-continue",
                    "Host": "h.wrttn.me",
            "User-Agent": "curl/7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15"
            },
            "ip": "127.0.0.1",
            "request_time": 0.04458308219909668,
            "start_time": 1313996082.806412,
            "url": "http://h.wrttn.me/post"
            }
        
        
            curl -X POST -F "test_files=@/tmp/testfile1.txt" -F "test_files=@/tmp/testfile2.txt" http://h.wrttn.me/post | python -mjson.tool
            {
                "args": {},
                "files": {
                    "pictures": [
                        {
                            "body": ";klrjewfghjnq3rjehg;fqnr___j3bnr4lgfbv4riy5bguy4br5y\n",
                            "content_type": "text/plain",
                            "filename": "testfile1.txt"
                        },
                        {
                            "body": ";klrlfkejwknfqwdrkjnbkfgjb3erj\n",
                            "content_type": "text/plain",
                            "filename": "testfile2.txt"
                        }
                    ]
                },
                "body": "",
                "headers": {
                    "Accept": "*/*",
                    "Content-Length": "428",
                    "Content-Type": "multipart/form-data; boundary=----------------------------af3ea881bfa9",
                    "Expect": "100-continue",
                    "Host": "h.wrttn.me",
            "User-Agent": "curl/7.19.7 (i486-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15"
            },
            "ip": "127.0.0.1",
            "request_time": 0.04804205894470215,
            "start_time": 1313953495.331477,
            "url": "http://h.wrttn.me/post"
            }
        
        
        SEE ALSO
        --------
        
        `http://hurl.it <http://hurl.it/>`_, `httpbin <http://httpbin.org>`_, `postbin <http://postbin.org>`_, `ifconfig.me <http://ifconfig.me/>`_, `httpstat.us <http://httpstat.us>`_
        
        
        CONTRIBUTE
        ----------
        
        Fork https://github.com/Lispython/httphq/ , create commit and pull request.
        
        
        THANKS
        ------
        
        To `Kenneth Reitz <http://kennethreitz.com/pages/open-projects.html>`_  who develop `httpbin.org <http://httpbin.org>`_
        
Platform: Linux
Platform: Mac
Classifier: Environment :: Web Environment
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX
Classifier: Topic :: Internet
Classifier: Topic :: Software Development :: Libraries
