curl - garevna/js-course GitHub Wiki

🎓 curl

Утилита командной строки для передачи данных по URL

🔗usage

Синтаксис:

$ curl опции ссылка

Получение данных по url

По умолчанию содержимое запрошенного ресурса будет отправлено на стандартный вывод

☕ 1️⃣

$ curl https://github.com

☕ 2️⃣

$ curl curl https://garevna.github.io/js-samples/js/index08.js


🎓 Опции


-O

Сохранить загруженный файл в текущую папку под тем же именем, что и на сервере

☕ 3️⃣

$ curl -O https://garevna.github.io/js-samples/js/index08.js

После выполнения этой операции в текущей папке появится новый файл index08.js


-o

Сохранить загруженный файл в текущую папку под указанным именем

☕ 4️⃣

$ curl -o index-1.html https://garevna.github.io/js-samples/index.html

После выполнения этой операции в текущей папке появится новый файл index-1.html


Далее воспользуемся бесплатным тестовым сервером

для изучения работы curl с различными опциями

с HTTP-глаголами GET и POST

Вам следует зарегистрироваться на этом ресурсе, чтобы получить собственный "туалет" для экспериментов

В дальнейших упражнениях garevna нужно будет заменить на идентификатор вашего "туалета"


-d

Эта опция нужна для отправки данных на сервер методом POST

☕ 5️⃣

$ curl -d "name=garevna&subject=testing" http://ptsv2.com/t/garevna/post

Обратите внимание на заголовки ( Headers )

Content-Type   application/x-www-form-urlencoded

Мы отправили данные формы как пары ключ=значение, соединенные знаком &:

"name=garevna&subject=testing"

Сервер автоматически распознал тип контента и установил значение заголовка Content-Type


-H

Эта опция позволяет устанавливать заголовки запроса

Например, мы можем передать в POST-запросе информацию о типе передаваемого контента

Заголовком по умолчанию для простого POST-запроса будет

Content-Type: application / x-www-form-urlencoded

Изменим это значение

Укажем, что мы передаем данные в json-формате:

☕ 6️⃣

$ curl -d '{ name:Irina }' -H 'Content-Type: application/json' http://ptsv2.com/t/garevna/post

мы передали простой объект { name:Irina }

в заголовке

Content-Type: application/json'

мы указали, что данные передаются в формате json-строки


☕ 7️⃣

Отправим ранее сохраненный файл index-1.html на сервер http://ptsv2.com,

указав в заголовке Content-Type, что мы отправляем обычный текстовый файл ( text/plain ):

curl -d @index-1.html -H 'Content-Type: text/plain' http://ptsv2.com/t/garevna/post


-u

Для авторизации запроса на сервере нужно передать с запросом имя пользователя и пароль

curl поддерживает login и пароль в URL-адресах:

$ curl http://name:[email protected]/full/path/to/file

С помощью опции -u ( --user ) можно передать логин:пароль отдельно:

$ curl --user garevna:garevna -d @index-1.html -H 'Content-Type: text/plain' http://ptsv2.com/t/garevna/post
⚠️ **GitHub.com Fallback** ⚠️