curl трюки
Соберу вместе все варианты запросов curl, которые мне пригодились. Для Linux. Для Windows необходимо внести некоторые изменения вместо /dev/null, но мне лень, сами разберётесь, если понадобится.
GET запрос:
curl https://example.com
HEAD запрос (или любой другой):
curl -X HEAD https://example.com
POST запрос:
curl -X POST -d "var1=1&var2=hello%20world" https://example.com
POST запрос с заголовком:
curl -X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-d "var1=1&var2=hello%20world" \
https://example.com
POST запрос с несколькими заголовками:
curl -X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "term-exp:140000b02b1111277e2222db9b33453f" \
-d "var1=1&var2=hello%20world" \
https://example.com
POST запрос с basic authentication:
curl -X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-u "username:password" \
-d "var1=1&var2=hello%20world" \
https://example.com
HTTP код страницы (POST):
curl -w "%{http_code}" -X POST -s -o /dev/null \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "var1=1&var2=hello%20world" \
https://example.com
Отправка письма с помощью curl:
Windows 10 — отправка email через curl
Bash скрипт для выполнения curl:
#!/bin/bash
HTTP_STATUS_STR="curl -w \"%{http_code}\" -X POST -s -o /dev/null \
-H \"Content-Type: application/x-www-form-urlencoded\" \
-d \"var1=1&var2=hello%20world\" \
https://example.com
HTTP_STATUS=`echo $HTTP_STATUS_STR | bash`
echo $HTTP_STATUS
Bash скрипт для выполнения curl с получением json значения:
Для json установим пакет jq:
apt-get install jq
Допустим, curl возвращает нечто подобное:
{"access_token":"this_is_my_token","token_type":"big","expires_in":86399}
Получаем значение access_token:
#!/bin/bash
ACCESS_TOKEN=`curl -X POST -s \
-H "Content-Type:application/x-www-form-urlencoded" \
-u "username:password" \
-d "var1=1&var2=hello%20world" \
https://exanple.com/api \
| jq '.access_token' 2 >/dev/null`
echo $ACCESS_TOKEN
Пока всё, буду дополнять.
Только полноправные пользователи могут оставлять комментарии. Аутентифицируйтесь пожалуйста, используя сервисы.