diff --git a/.gitignore b/.gitignore index 252e539..37211d2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -params.txt -headers.json -payload.json -disable_peer_validation \ No newline at end of file +curl/* +!curl/.gitkeep + +disable_peer_validation diff --git a/README.md b/README.md index 72256ed..03c1d80 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,58 @@ +![screenshot](https://codeberg.org/attachments/1cae98c6-0873-41fd-aad0-d33bf495fc50) + ![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 diff --git a/curl.sh b/curl.sh index db614c0..1819938 100755 --- a/curl.sh +++ b/curl.sh @@ -8,18 +8,25 @@ fi URL="$1" METHOD="$2" -PARAMS_FILE="params.txt" -HEADERS_FILE="headers.json" -PAYLOAD_FILE="payload.json" + DISABLE_SSL_FILE="disable_peer_validation" -# Append URL search parameters from params.txt -if [ -f $PARAMS_FILE ]; then - PARAMS=$( $RESP_BODY_JSON_FILE diff --git a/curl/.gitkeep b/curl/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/init.sh b/init.sh new file mode 100755 index 0000000..758e473 --- /dev/null +++ b/init.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +cd curl + +echo "" > resp_body.txt +echo "" > req_params.txt +echo "" > resp_headers.txt + +echo "{}" > req_body.json +echo "{}" > resp_body.json +echo "{}" > req_headers.json