Шпаргалка по curl

Скопировано:

Нажмите на команду или пример, чтобы скопировать его.


Что такое curl?

curl - это мощная утилита командной строки для передачи данных между серверами с использованием различных протоколов: HTTP, HTTPS, FTP, SFTP, SCP, SMTP и многих других. Часто используется для тестирования API, загрузки файлов, отладки веб-запросов и автоматизации задач.

Установка curl

Базовый синтаксис

curl [опции] [URL]

Простые запросы

HTTP-методы

Отправка данных

Для POST/PUT запросов:

Работа с заголовками

Аутентификация

Работа с куками

HTTPS и SSL

Таймауты и повторы

Прокси

Пример: GET-запрос к API

curl -s -H "Authorization: Bearer token123" \
     -H "Accept: application/json" \
     "https://api.github.com/user"

Пример: POST с JSON

curl -X POST \
     -H "Content-Type: application/json" \
     -d "{\"title\":\"Новая задача\",\"done\":false}" \
     https://api.site.com/tasks

Пример: Загрузка файла

curl -F "upload=@report.pdf" \
     -H "Authorization: Bearer xyz" \
     https://site.com/upload

Пример: Сохранение с проверкой кода ответа

curl -f -o backup.sql "http://db.site.com/dump.sql" \
|| echo "Ошибка загрузки!"

Флаг -f (fail) заставляет curl возвращать ненулевой код при HTTP-ошибках (4xx/5xx).

Пример: Скрипт с логированием

#!/bin/bash
echo "[$(date)] Запуск..." >> curl.log
curl -s -o /dev/null -w "%{http_code}" http://site.com >> curl.log 2>&1
echo "" >> curl.log

Полезные опции

Формат вывода статистики (-w)

Пример:

curl -w "DNS: %{time_namelookup}s | Connect: %{time_connect}s | Total: %{time_total}s\n" \
     -o /dev/null -s http://example.com

Полезные переменные:

Безопасность и советы


Совет: Создайте алиасы в .bashrc или .zshrc:

alias c='curl -s'
alias cj='curl -s -H "Accept: application/json"'
alias cu='curl -u'