GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Lispython/httphq: HTTP Request & Response service

BranchesTags
Open more actions menu

Latest commit

 

History

60 Commits
60 Commits

Folders and files

NameName
Last commit message
Last commit date
configs_templates
configs_templates
 
 
httphq
httphq
 
 
.gitignore
.gitignore
 
 
.travis
.travis
 
 
.travis.yml
.travis.yml
 
 
LICENSE
LICENSE
 
 
MANIFEST.in
MANIFEST.in
 
 
Makefile
Makefile
 
 
README.rst
README.rst
 
 
__init__.py
__init__.py
 
 
buildenv.sh
buildenv.sh
 
 
debug.py
debug.py
 
 
manage.sh
manage.sh
 
 
setup.py
setup.py
 
 
tests.py
tests.py
 
 
tox.ini
tox.ini
 
 

Repository files navigation

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

  • / — 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

  • 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

  • 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

About

HTTP Request & Response service

h.wrttn.me

Resources

Readme
License
Activity

Stars

12 stars

Watchers

3 watching

Forks

2 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.