Перейти к основному содержанию

Трюки curl

code

Соберу вместе все варианты запросов 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 -i -X POST \
-F filefieldnameinform="@C:/mydir/hello.gif" \
http://example.com/dir/?x=y

Загрузить файл с изменённым Content-Type

curl -i -X POST \
-F file="@C:/mydir/hello.php;type=image/gif;" \
http://example.com/dir/?x=y

Отправка письма с помощью 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

Cookie

curl -H "cookie: mycookie=admin" -v \
http://example.com/dir/?x=y

Telnet

curl -v telnet://10.11.12.13:445

Не проверять сертификат

curl -k https://example.com

Скачать файл

curl https://example.com/files.zip --output files.zip

Скачать файл с basic authentication

curl \
-k \
-u "username:password" \
https://example.com/files.zip \
--output files.zip

Скачать файл через Proxy

Для указания прокси используется -x или --proxy.

curl --request GET \
  -x "http://proxyusername:proxypassword@proxy-server.domain.local:3128" \
  --url 'https://example.com/files.zip' \
  --output 'files.zip'

 Подмена IP домена

curl --resolve example.com:443:127.0.0.1 https://example.com

Пока всё, буду дополнять.

Теги

 

Похожие материалы

Red Hat Enterprise Linux — поддержка работы сайтов с российскими сертификатами

Многие учреждения начинают переходить на использование российских сертификатов. Такие сертификаты не поддерживаются по умолчанию в Linux.

Keepalived для Postfix

Есть два сервера с операционной системой Ubuntu 20.04.4 LTS. На обоих серверах развёрнут Postfix сервер. Почтовики работают только на отправку писем, на них всё уже настроено. Пришла задача объединить их в один отказоустойчивый кластер Master — Slave с плавающим виртуальным IP-адресом с помощью keepalived. Главная задача: принимать почту на один IP адрес и обеспечить резервирование postfix.

Теги

Автоматическое монтирование шары CIFS в fstab

Перезагружаем сервер, с которого примонтирована шара, а чего бы его и не перезагрузить, вот хочется перезагрузить, сил нет терпеть. И все примонтированные к этому серверу шары на 100500 серверах отваливаются.

Теги