![screenshot](https://codeberg.org/attachments/1cae98c6-0873-41fd-aad0-d33bf495fc50) ![license](https://licensebuttons.net/p/zero/1.0/88x31.png) 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) [Here is a simpler version of this script that prints the response body directly to the console](/vlw/curl/src/tag/1.1.0) # 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 reads or writes values in these files to construct a request or show a response from a request. ## 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 ``` ## 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" } ``` ### `curl/req_headers.json` Key-value JSON object of optional request headers. ```json { "X-Header-Name": "Header value" } ``` ## 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 ``` # Save and load configurations The `save.sh` script allows you to save and load configurations so you can easily switch between them. Command|Description --|-- `./save.sh save `|Save the current configuration where `` is the name of this configuration `./save.sh move `|Move the current configuration where `` is the name of this configuration. A new empty configuration will be created. `./save.sh load `|Load a saved configuration where `` is the name of the target configuration. The current configuration will be saved as `._backup`. `./save.sh list`|List all saved configurations