mirror of
https://codeberg.org/vlw/curl.git
synced 2026-04-13 02:39:38 +02:00
feat: add output of response body and headers to files
This commit is contained in:
parent
73bf60d031
commit
f4ded08c4c
4 changed files with 44 additions and 20 deletions
8
.gitignore
vendored
8
.gitignore
vendored
|
|
@ -1,4 +1,4 @@
|
|||
params.txt
|
||||
headers.json
|
||||
payload.json
|
||||
disable_peer_validation
|
||||
curl/*
|
||||
!curl/.gitkeep
|
||||
|
||||
disable_peer_validation
|
||||
|
|
|
|||
45
curl.sh
45
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=$(<params.txt)
|
||||
REQ_BODY_FILE="curl/req_body.json"
|
||||
REQ_PARAMS_FILE="curl/req_params.txt"
|
||||
REQ_HEADERS_FILE="curl/req_headers.json"
|
||||
|
||||
RESP_HEADERS_FILE="curl/resp_headers.txt"
|
||||
RESP_BODY_RAW_FILE="curl/resp_body.txt"
|
||||
RESP_BODY_JSON_FILE="curl/resp_body.json"
|
||||
|
||||
# Append URL search parameters
|
||||
if [ -f $REQ_PARAMS_FILE ]; then
|
||||
# Parse each newline as a separate parameter joined by a "&"
|
||||
PARAMS=$(tr '\n' '&' < "$REQ_PARAMS_FILE" | sed 's/&$//')
|
||||
URL="${URL}?${PARAMS}"
|
||||
fi
|
||||
|
||||
# Prepare the curl command
|
||||
# Prepare curl
|
||||
CURL_CMD="curl -s"
|
||||
|
||||
# Check if SSL peer validation should be disabled
|
||||
|
|
@ -28,31 +35,37 @@ if [ -f $DISABLE_SSL_FILE ]; then
|
|||
fi
|
||||
|
||||
# Add headers from headers.json
|
||||
if [ -f $HEADERS_FILE ]; then
|
||||
if [ -f $REQ_HEADERS_FILE ]; then
|
||||
# Read headers from the JSON file
|
||||
while IFS= read -r line; do
|
||||
HEADER_NAME=$(echo "$line" | jq -r '.[keys[0]]')
|
||||
HEADER_VALUE=$(echo "$line" | jq -r '.[keys[1]]')
|
||||
CURL_CMD="$CURL_CMD -H \"$HEADER_NAME: $HEADER_VALUE\""
|
||||
done < <(jq -c 'to_entries | .[]' "$HEADERS_FILE")
|
||||
done < <(jq -c 'to_entries | .[]' "$REQ_HEADERS_FILE")
|
||||
fi
|
||||
|
||||
# Add the request method and URL to the curl command
|
||||
# Add the request method and URL to curl
|
||||
CURL_CMD="$CURL_CMD -X $METHOD \"$URL\""
|
||||
|
||||
# If the method is not GET, include the payload
|
||||
if [ $METHOD != "GET" ]; then
|
||||
if [ -f "$PAYLOAD_FILE" ]; then
|
||||
PAYLOAD=$(<"$PAYLOAD_FILE")
|
||||
if [ -f "$REQ_BODY_FILE" ]; then
|
||||
PAYLOAD=$(<"$REQ_BODY_FILE")
|
||||
CURL_CMD="$CURL_CMD -H \"Content-Type: application/json\" -d '$PAYLOAD'"
|
||||
else
|
||||
echo "Error: Payload file '${PAYLOAD_FILE}' not found."
|
||||
echo "Error: Payload file '${REQ_BODY_FILE}' not found."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Execute the curl command
|
||||
# Save the response headers and body
|
||||
CURL_CMD="$CURL_CMD -o $RESP_BODY_RAW_FILE -D $RESP_HEADERS_FILE"
|
||||
|
||||
# Execute curl
|
||||
eval "clear"
|
||||
echo -e "${METHOD} ${URL}\n"
|
||||
|
||||
echo -e "${METHOD} ${URL}"
|
||||
eval $CURL_CMD
|
||||
echo -e ""
|
||||
|
||||
# Copy the raw respone body to a pretty-printed JSON file
|
||||
jq . $RESP_BODY_RAW_FILE > $RESP_BODY_JSON_FILE
|
||||
|
|
|
|||
0
curl/.gitkeep
Normal file
0
curl/.gitkeep
Normal file
11
init.sh
Executable file
11
init.sh
Executable file
|
|
@ -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
|
||||
Loading…
Add table
Reference in a new issue