docs: update README

This commit is contained in:
Victor Westerlund 2026-03-14 10:35:26 +01:00
parent f4ded08c4c
commit 3e1baff0c4

View file

@ -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
<img src="https://blob.vlw.se/01/0199056d-d6fc-748b-adbb-269c8c5237ab.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)
**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,8 +60,15 @@ 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.
@ -44,14 +76,3 @@ Run the `curl.sh` file from your shell and pass it two parametes for URL and req
```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$
```