curl/README.md
vlw e015174467 feat: print response code to CLI (#10)
Closes #8

Reviewed-on: https://codeberg.org/vlw/curl/pulls/10
Co-authored-by: vlw <victor@vlw.se>
Co-committed-by: vlw <victor@vlw.se>
2026-04-06 10:25:27 +02:00

88 lines
No EOL
2.8 KiB
Markdown

![curl-screenshot](https://codeberg.org/attachments/9bdd8005-5eea-4add-89c3-8efc61d06b6f)
![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 have Postman?
>
> We have 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 <name>`|Save the current configuration where `<name>` is the name of this configuration
`./save.sh move <name>`|Move the current configuration where `<name>` is the name of this configuration. A new empty configuration will be created.
`./save.sh load <name>`|Load a saved configuration where `<name>` is the name of the target configuration. The current configuration will be saved as `._backup`.
`./save.sh list`|List all saved configurations