{"id":18526684,"url":"https://github.com/rogusdev/echoreq","last_synced_at":"2025-07-02T12:32:47.831Z","repository":{"id":214687265,"uuid":"737116046","full_name":"rogusdev/echoreq","owner":"rogusdev","description":"Simple webserver to echo http requests -- headers, etc, including multipart form-data","archived":false,"fork":false,"pushed_at":"2023-12-31T05:23:59.000Z","size":32,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-02T04:13:12.122Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rogusdev.png","metadata":{"files":{"readme":"README.md","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":"2023-12-29T21:44:28.000Z","updated_at":"2023-12-29T21:47:17.000Z","dependencies_parsed_at":"2024-11-06T18:04:22.054Z","dependency_job_id":null,"html_url":"https://github.com/rogusdev/echoreq","commit_stats":null,"previous_names":["rogusdev/echoreq"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rogusdev/echoreq","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogusdev%2Fechoreq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogusdev%2Fechoreq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogusdev%2Fechoreq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogusdev%2Fechoreq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rogusdev","download_url":"https://codeload.github.com/rogusdev/echoreq/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogusdev%2Fechoreq/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263140613,"owners_count":23419916,"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-11-06T17:52:11.774Z","updated_at":"2025-07-02T12:32:47.772Z","avatar_url":"https://github.com/rogusdev.png","language":"Rust","readme":"# echoreq\nSimple webserver to echo http requests -- headers, etc, including multipart form-data (binary converted to printable chars). For testing!\n\nInstall it: `cargo install echoreq`, then run it `echoreq` (default port is 3000, change with `PORT=5000 echoreq` etc), then send requests to it. Examples:\n\n```\ncurl -X POST http://localhost:3000/hello/name \\\n    -b tower.sid=abcd1234 -d \"param1=value1\u0026param2=value2\"\n\ncurl -X POST http://localhost:3000/echo/post/json \\\n    -H \"Content-Type: application/json\" \\\n    -d '{\"productId\": 123456, \"quantity\": 100}'\n\ncurl -X POST http://localhost:3000/form-data/text \\\n    -F title='Cool story' -F year=2023 -F thumb=@demo.txt\n\ncurl -X POST http://localhost:3000/form-data/image \\\n    -F title='Cool story' -F year=2023 -F thumb=@demo.png\n```\n\nSample response:\n```\nPOST /echo/post/json\nhost: localhost:3000\nuser-agent: curl/7.81.0\naccept: */*\ncontent-type: application/json\ncontent-length: 38\n\n{\"productId\": 123456, \"quantity\": 100}\n```\n\n(Curl will also add a `⏎` at the end to indicate that there was no final newline in the response, because `echoreq` echoes the request body as it is received, including any trailing newlines or not. But this curl addition is not part of the response, as is demonstrated in the tests.)\n\nIt is also appropriate to git clone this repo and add your own tests (locally) to verify requests ala the various tests that reproduce the above examples. Testing is the real purpose of this application!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogusdev%2Fechoreq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frogusdev%2Fechoreq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogusdev%2Fechoreq/lists"}