diff --git a/curl.sh b/curl.sh index 1819938..0f24b3c 100755 --- a/curl.sh +++ b/curl.sh @@ -6,9 +6,6 @@ if [ "$#" -ne 2 ]; then exit 1 fi -URL="$1" -METHOD="$2" - DISABLE_SSL_FILE="disable_peer_validation" REQ_BODY_FILE="curl/req_body.json" @@ -19,39 +16,44 @@ 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 +url="$1" +method="$2" + +# 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}" + params=$(tr '\n' '&' < "$REQ_PARAMS_FILE" | sed 's/&$//') + url="${url}?${params}" fi # Prepare curl -CURL_CMD="curl -s" +curl_cmd="curl -s" # Check if SSL peer validation should be disabled if [ -f $DISABLE_SSL_FILE ]; then - CURL_CMD="$CURL_CMD -k" + curl_cmd="$curl_cmd -k" fi # Add headers from headers.json 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\"" + 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 | .[]' "$REQ_HEADERS_FILE") fi # Add the request method and URL to curl -CURL_CMD="$CURL_CMD -X $METHOD \"$URL\"" +curl_cmd="$curl_cmd -X $method \"$url\"" # If the method is not GET, include the payload -if [ $METHOD != "GET" ]; then +if [ $method != "GET" ]; then if [ -f "$REQ_BODY_FILE" ]; then - PAYLOAD=$(<"$REQ_BODY_FILE") - CURL_CMD="$CURL_CMD -H \"Content-Type: application/json\" -d '$PAYLOAD'" + payload=$(<"$REQ_BODY_FILE") + + curl_cmd="$curl_cmd -H \"Content-Type: application/json\" -d '$payload'" else echo "Error: Payload file '${REQ_BODY_FILE}' not found." exit 1 @@ -59,13 +61,13 @@ if [ $METHOD != "GET" ]; then fi # Save the response headers and body -CURL_CMD="$CURL_CMD -o $RESP_BODY_RAW_FILE -D $RESP_HEADERS_FILE" +curl_cmd="$curl_cmd -o $RESP_BODY_RAW_FILE -D $RESP_HEADERS_FILE" # Execute curl eval "clear" -echo -e "${METHOD} ${URL}" -eval $CURL_CMD +echo -e "${method} ${url}" +eval $curl_cmd # Copy the raw respone body to a pretty-printed JSON file jq . $RESP_BODY_RAW_FILE > $RESP_BODY_JSON_FILE