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.
INSTALLATION
You can use easy_install
or pip
to install httphq:
pip install httphq
or
easy_install httphq
ENDPOINTS
- / — Show home page
- /ip — Returns client IP and proxies
- /get — GET method
- /post — POST method
- /put — PUT method
- /head — HEAD method
- /options — OPTIONS method
- /delete — DELETE method
- /user-agent — Returns user agent
- /headers — Returns sended headers
- /cookies — Returns all user cookies
- /cookies/set/{name: str}/{value: str} — Setup given name and value on client
- /status/{status_code: int} — Returns given HTTP status code
- /basic-auth/{username: str}/{password: str} — Basic access authentication
- /digest-auth/{qop: auth | auth-int}/{username: str}/{password: str} — Digest access authentication
HTTP status codes
1xx Informational
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
- 300 — Multiple Choices
- 301 — Moved Permanently [ Will also return this extra header: Location: http://http.obout.ru ]
- 302 — Found [ Will also return this extra header: Location: http://h.wrttn.me ]
- 303 — See Other [ Will also return this extra header: Location: http://h.wrttn.me ]
- 304 — Not Modified [ Won't return a response body ]
- 305 — Use Proxy [ Will also return this extra header: Location: http://h.wrttn.me ]
- 306 — (Unused)
- 307 — Temporary Redirect [ Will also return this extra header: Location: http://h.wrttn.me ]
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