httphq

HTTP Request & Response service


License
BSD-3-Clause
Install
pip install httphq==0.0.6

Documentation

HTTP Request & Response service

Simple service for testing HTTP/HTTPS requests. All endpoint responses are JSON-encoded exclude /status/{status_code: int}. It's useful for testing how your own scripts deal with varying responses and requests.

https://travis-ci.org/Lispython/httphq.png

INSTALLATION

You can use easy_install or pip to install httphq:

pip install httphq

or

easy_install httphq

ENDPOINTS

HTTP status codes

1xx Informational

  • 100 — Continue
  • 101 — Switching Protocols

2xx Success

  • 200 — OK
  • 201 — Created
  • 202 — Accepted
  • 203 — Non-Authoritative Information
  • 204 — No Content [ Won't return a response body ]
  • 205 — Reset Content [ Won't return a response body ]
  • 206 — Partial Content

3xx Redirection

4xx Client Error

  • 400 — Bad Request
  • 401 — Unauthorized [ Will also return this extra header: WWW-Authenticate: Basic realm="Fake Realm" ]
  • 402 — Payment Required
  • 403 — Forbidden
  • 404 — Not Found
  • 405 — Method Not Allowed
  • 406 — Not Acceptable
  • 407 — Proxy Authentication Required [ Will also return this extra header: Proxy-Authenticate: Basic realm="Fake Realm" ]
  • 408 — Request Timeout
  • 409 — Conflict
  • 410 — Gone
  • 411 — Length Required
  • 412 — Precondition Failed
  • 413 — Request Entity Too Large
  • 414 — Request-URI Too Long
  • 415 — Unsupported Media Type
  • 416 — Requested Range Not Satisfiable
  • 417 — Expectation Failed

5xx Server Error

  • 500 — Internal Server Error
  • 501 — Not Implemented
  • 502 — Bad Gateway
  • 503 — Service Unavailable
  • 504 — Gateway Timeout
  • 505 — HTTP Version Not Supported

EXAMPLES

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, httpbin, postbin, ifconfig.me, httpstat.us

CONTRIBUTE

Fork https://github.com/Lispython/httphq/ , create commit and pull request.

THANKS

To Kenneth Reitz who develop httpbin.org