{"id":15374485,"url":"https://github.com/lispython/httphq","last_synced_at":"2025-04-15T12:31:41.790Z","repository":{"id":62569642,"uuid":"2248113","full_name":"Lispython/httphq","owner":"Lispython","description":"HTTP Request \u0026 Response service","archived":false,"fork":false,"pushed_at":"2023-08-14T21:35:14.000Z","size":73,"stargazers_count":12,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-17T16:21:28.760Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://h.wrttn.me","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lispython.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-08-22T11:43:33.000Z","updated_at":"2020-12-25T11:49:24.000Z","dependencies_parsed_at":"2024-11-08T11:13:33.765Z","dependency_job_id":null,"html_url":"https://github.com/Lispython/httphq","commit_stats":{"total_commits":58,"total_committers":2,"mean_commits":29.0,"dds":0.4655172413793104,"last_synced_commit":"3d3452ea2e894a5df6a3f41249be88a64f80086c"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lispython%2Fhttphq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lispython%2Fhttphq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lispython%2Fhttphq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lispython%2Fhttphq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lispython","download_url":"https://codeload.github.com/Lispython/httphq/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249072262,"owners_count":21208150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T13:58:53.939Z","updated_at":"2025-04-15T12:31:41.529Z","avatar_url":"https://github.com/Lispython.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nHTTP Request \u0026 Response service\n===============================\n\nSimple service for testing HTTP/HTTPS requests.\nAll endpoint responses are JSON-encoded exclude `/status/{status_code: int} \u003chttp://h.wrttn.me/status/200\u003e`_.\nIt's useful for testing how your own scripts deal with varying responses and requests.\n\n.. image:: https://travis-ci.org/Lispython/httphq.png\n\t   :target: https://travis-ci.org/Lispython/httphq\n\nINSTALLATION\n------------\n\nYou can use ``easy_install`` or ``pip`` to install `httphq`:\n\n``pip install httphq``\n\nor\n\n``easy_install httphq``\n\nENDPOINTS\n---------\n\n- `/ \u003chttp://h.wrttn.me/\u003e`_ —  Show home page\n- `/ip \u003chttp://h.wrttn.me/ip\u003e`_ — Returns client IP and proxies\n- `/get \u003chttp://h.wrttn.me/get\u003e`_  — GET method\n- `/post \u003chttp://h.wrttn.me/post\u003e`_ — POST method\n- `/put \u003chttp://h.wrttn.me/put\u003e`_ — PUT method\n- `/head \u003chttp://h.wrttn.me/head\u003e`_ — HEAD method\n- `/options \u003chttp://h.wrttn.me/options\u003e`_ — OPTIONS method\n- `/delete \u003chttp://h.wrttn.me/delete\u003e`_ — DELETE method\n- `/user-agent \u003chttp://h.wrttn.me/user-agent\u003e`_ — Returns user agent\n- `/headers \u003chttp://h.wrttn.me/headers\u003e`_ — Returns sended headers\n- `/cookies \u003chttp://h.wrttn.me/cookies\u003e`_ — Returns all user cookies\n- `/cookies/set/{name: str}/{value: str} \u003chttp://h.wrttn.me/cookies/set/test_name/test_value\u003e`_ — Setup given name and value on client\n- `/status/{status_code: int} \u003chttp://h.wrttn.me/status/403\u003e`_ — Returns given HTTP status code\n- `/basic-auth/{username: str}/{password: str} \u003chttp://h.wrttn.me/basic-auth/test_username/test_password\u003e`_ — Basic access authentication\n- `/digest-auth/{qop: auth | auth-int}/{username: str}/{password: str} \u003chttp://h.wrttn.me/digest-auth/auth/test_username/test_password\u003e`_ — Digest access authentication\n\n\nHTTP status codes\n-----------------\n\n1xx Informational\n~~~~~~~~~~~~~~~~~\n\n- `100 \u003chttp://h.wrttn.me/status/100\u003e`_ — Continue\n- `101 \u003chttp://h.wrttn.me/status/101\u003e`_ — Switching Protocols\n\n2xx Success\n~~~~~~~~~~~\n- `200 \u003chttp://h.wrttn.me/status/200\u003e`_ — OK\n- `201 \u003chttp://h.wrttn.me/status/201\u003e`_ — Created\n- `202 \u003chttp://h.wrttn.me/status/202\u003e`_ — Accepted\n- `203 \u003chttp://h.wrttn.me/status/203\u003e`_ — Non-Authoritative Information\n- `204 \u003chttp://h.wrttn.me/status/204\u003e`_ — No Content [ Won't return a response body ]\n- `205 \u003chttp://h.wrttn.me/status/205\u003e`_ — Reset Content [ Won't return a response body ]\n- `206 \u003chttp://h.wrttn.me/status/206\u003e`_ — Partial Content\n\n3xx Redirection\n~~~~~~~~~~~~~~~\n- `300 \u003chttp://h.wrttn.me/status/300\u003e`_ — Multiple Choices\n- `301 \u003chttp://h.wrttn.me/status/301\u003e`_ — Moved Permanently [ Will also return this extra header: Location: http://http.obout.ru ]\n- `302 \u003chttp://h.wrttn.me/status/302\u003e`_ — Found [ Will also return this extra header: Location: http://h.wrttn.me ]\n- `303 \u003chttp://h.wrttn.me/status/303\u003e`_ — See Other [ Will also return this extra header: Location: http://h.wrttn.me ]\n- `304 \u003chttp://h.wrttn.me/status/304\u003e`_ — Not Modified [ Won't return a response body ]\n- `305 \u003chttp://h.wrttn.me/status/305\u003e`_ — Use Proxy [ Will also return this extra header: Location: http://h.wrttn.me ]\n- `306 \u003chttp://h.wrttn.me/status/306\u003e`_ — (Unused)\n- `307 \u003chttp://h.wrttn.me/status/307\u003e`_ — Temporary Redirect [ Will also return this extra header: Location: http://h.wrttn.me ]\n\n4xx Client Error\n~~~~~~~~~~~~~~~~\n\n- `400 \u003chttp://h.wrttn.me/status/400\u003e`_ — Bad Request\n- `401 \u003chttp://h.wrttn.me/status/401\u003e`_ — Unauthorized [ Will also return this extra header: WWW-Authenticate: Basic realm=\"Fake Realm\" ]\n- `402 \u003chttp://h.wrttn.me/status/402\u003e`_ — Payment Required\n- `403 \u003chttp://h.wrttn.me/status/403\u003e`_ — Forbidden\n- `404 \u003chttp://h.wrttn.me/status/404\u003e`_ — Not Found\n- `405 \u003chttp://h.wrttn.me/status/405\u003e`_ — Method Not Allowed\n- `406 \u003chttp://h.wrttn.me/status/406\u003e`_ — Not Acceptable\n- `407 \u003chttp://h.wrttn.me/status/407\u003e`_ — Proxy Authentication Required [ Will also return this extra header: Proxy-Authenticate: Basic realm=\"Fake Realm\" ]\n- `408 \u003chttp://h.wrttn.me/status/408\u003e`_ — Request Timeout\n- `409 \u003chttp://h.wrttn.me/status/409\u003e`_ — Conflict\n- `410 \u003chttp://h.wrttn.me/status/410\u003e`_ — Gone\n- `411 \u003chttp://h.wrttn.me/status/411\u003e`_ — Length Required\n- `412 \u003chttp://h.wrttn.me/status/412\u003e`_ — Precondition Failed\n- `413 \u003chttp://h.wrttn.me/status/413\u003e`_ — Request Entity Too Large\n- `414 \u003chttp://h.wrttn.me/status/414\u003e`_ — Request-URI Too Long\n- `415 \u003chttp://h.wrttn.me/status/415\u003e`_ — Unsupported Media Type\n- `416 \u003chttp://h.wrttn.me/status/416\u003e`_ — Requested Range Not Satisfiable\n- `417 \u003chttp://h.wrttn.me/status/417\u003e`_ — Expectation Failed\n\n\n5xx Server Error\n~~~~~~~~~~~~~~~~\n\n- `500 \u003chttp://h.wrttn.me/status/500\u003e`_ — Internal Server Error\n- `501 \u003chttp://h.wrttn.me/status/501\u003e`_ — Not Implemented\n- `502 \u003chttp://h.wrttn.me/status/502\u003e`_ — Bad Gateway\n- `503 \u003chttp://h.wrttn.me/status/503\u003e`_ — Service Unavailable\n- `504 \u003chttp://h.wrttn.me/status/504\u003e`_ — Gateway Timeout\n- `505 \u003chttp://h.wrttn.me/status/505\u003e`_ — HTTP Version Not Supported\n\n\nEXAMPLES\n--------\n\n.. code-block:: text\n\n    curl http://h.wrttn.me/get | python -mjson.tool\n    {\n        \"args\": {},\n        \"headers\": {\n            \"Accept\": \"*/*\",\n            \"Host\": \"h.wrttn.me\",\n    \"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\"\n    },\n    \"url\": \" http://h.wrttn.me/get\"\n    }\n\n\n    curl -X POST -F \"name=value\" http://h.wrttn.me/post | python -mjson.tool\n    {\n        \"args\": {\n            \"name\": [\n                \"value\"\n            ]\n        },\n        \"body\": \"------------------------------eb288eb3d3e4\\r\\nContent-Disposition: form-data; name=\\\"name\\\"\\r\\n\\r\\nvalue\\r\\n------------------------------eb288eb3d3e4--\\r\\n\",\n        \"files\": {},\n        \"headers\": {\n            \"Accept\": \"*/*\",\n            \"Content-Length\": \"144\",\n            \"Content-Type\": \"multipart/form-data; boundary=----------------------------eb288eb3d3e4\",\n            \"Expect\": \"100-continue\",\n            \"Host\": \"h.wrttn.me\",\n    \"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\"\n    },\n    \"ip\": \"127.0.0.1\",\n    \"request_time\": 0.04458308219909668,\n    \"start_time\": 1313996082.806412,\n    \"url\": \"http://h.wrttn.me/post\"\n    }\n\n\n    curl -X POST -F \"test_files=@/tmp/testfile1.txt\" -F \"test_files=@/tmp/testfile2.txt\" http://h.wrttn.me/post | python -mjson.tool\n    {\n        \"args\": {},\n        \"files\": {\n            \"pictures\": [\n                {\n                    \"body\": \";klrjewfghjnq3rjehg;fqnr___j3bnr4lgfbv4riy5bguy4br5y\\n\",\n                    \"content_type\": \"text/plain\",\n                    \"filename\": \"testfile1.txt\"\n                },\n                {\n                    \"body\": \";klrlfkejwknfqwdrkjnbkfgjb3erj\\n\",\n                    \"content_type\": \"text/plain\",\n                    \"filename\": \"testfile2.txt\"\n                }\n            ]\n        },\n        \"body\": \"\",\n        \"headers\": {\n            \"Accept\": \"*/*\",\n            \"Content-Length\": \"428\",\n            \"Content-Type\": \"multipart/form-data; boundary=----------------------------af3ea881bfa9\",\n            \"Expect\": \"100-continue\",\n            \"Host\": \"h.wrttn.me\",\n    \"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\"\n    },\n    \"ip\": \"127.0.0.1\",\n    \"request_time\": 0.04804205894470215,\n    \"start_time\": 1313953495.331477,\n    \"url\": \"http://h.wrttn.me/post\"\n    }\n\n\nSEE ALSO\n--------\n\n`http://hurl.it \u003chttp://hurl.it/\u003e`_, `httpbin \u003chttp://httpbin.org\u003e`_, `postbin \u003chttp://postbin.org\u003e`_, `ifconfig.me \u003chttp://ifconfig.me/\u003e`_, `httpstat.us \u003chttp://httpstat.us\u003e`_\n\n\nCONTRIBUTE\n----------\n\nFork https://github.com/Lispython/httphq/ , create commit and pull request.\n\n\nTHANKS\n------\n\nTo `Kenneth Reitz \u003chttp://kennethreitz.com/pages/open-projects.html\u003e`_  who develop `httpbin.org \u003chttp://httpbin.org\u003e`_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flispython%2Fhttphq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flispython%2Fhttphq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flispython%2Fhttphq/lists"}