From 3e1baff0c4d006e06b06f21b8c75c1d5af9d744c Mon Sep 17 00:00:00 2001 From: vlw Date: Sat, 14 Mar 2026 10:35:26 +0100 Subject: [PATCH] docs: update README --- README.md | 73 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 72256ed..504d82b 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,58 @@ +![screenshot](https://codeberg.org/attachments/34bbbfe3-d8b9-49a4-b2a2-3809148f83d3) + ![license](https://licensebuttons.net/p/zero/1.0/88x31.png) -# Simple curl bash wrapper - +This is a wrapper for curl written in bash designed to be used along with Visual Studio Code. ---- +> Mom, can we get Postman? +> +> We've got Postman at home! +> +> [\- Source](https://knowyourmeme.com/memes/we-have-food-at-home) -**This is a very simple wrapper for curl that I use with VSCode (code-server) to make HTTP requests - like Postman but super simple.** +[Here is a simpler version of this script that prints the response body directly to the console](/vlw/curl/src/tag/1.1.0) -VSCode is not required to run this script, I use it as a GUI. +# Get started +Clone this repo +```sh +git clone https://codeberg.org/vlw/curl --depth 1 +``` + +This script uses separate files in the `curl/` directory for various request options. You can generate these files on first load by running the init script. +```sh +./init.sh +``` + +> [!Note] +> If you're using this with VSCode, drag each file into the workspace area where you want it to display. You of course don't have to follow the layout in the screenshot above. # Files -This script uses separate files for various request options. Create these files in the same directory as `curl.sh`. +This script reads or writes values in these files to construct a request or show a response from a request. -## `params.txt` -URL search parameters. (Leading "?" is optional) -``` -foo=bar&hello=world +## Disable SSL peer validation +You can disable SSL peer validation (for self-signed certificates etc.) by creating an empty file `disable_peer_validation` in the base directory of this repo. +```sh +touch disable_peer_validation ``` -## `payload.json` -JSON request body that will be sent with all requests (except `GET`). +## Request +### `curl/req_params.txt` +URL search parameters. Each newline is treated as a separate search parameter. +``` +foo=bar +fizz=buzz +``` + +### `curl/req_body.json` +JSON request body that will be sent with all requests (except `GET`). Leave empty to send nothing. ```json { "request_body_parameter": "request_body_value" } ``` -## `headers.json` +### `curl/req_headers.json` Key-value JSON object of optional request headers. ```json { @@ -35,23 +60,19 @@ Key-value JSON object of optional request headers. } ``` -## `disable_peer_validation` -Optional empty file that when present will disable SSL peer validation - for self-signed certificates etc. +## Response +### `curl/resp_headers.txt` +A raw output of the response headers from the last request + +### `curl/resp_body.txt` +The raw response body received from the last request + +### `curl/resp_body.json` +The raw response body parsed into- and automatically pretty-printed JSON # Make a request Run the `curl.sh` file from your shell and pass it two parametes for URL and request method. ```sh ./curl.sh https://example.com GET -``` - -The response body will be printed to stdout. - -*Example* -``` -vlw@example:/curl$ ./curl.sh https://example.com GET -GET https://example.com?foo=bar - -"This is an example response body in plaintext" -vlw@example:/curl$ ``` \ No newline at end of file