Эта статья была впервые опубликована в: общедоступной учетной записи WeChat «Красота эксплуатации и обслуживания», идентификатор публичной учетной записи: Hi-Linux.
«Красота эксплуатации и обслуживания» — это общедоступный аккаунт с чувствами и установками, посвященный обмену техническими статьями, связанными с эксплуатацией и обслуживанием Linux. Официальный аккаунт предназначен для обмена различными техническими статьями и публикации передовой научной и технологической информации для большинства специалистов по эксплуатации и техническому обслуживанию. Основная концепция официальной учетной записи: делиться, мы считаем, что только совместное использование может сделать нашу группу сильнее. Если вы хотите получать последние технические статьи в первый раз, пожалуйста, следуйте за нами!
Автор официального аккаунта Майк, разнорабочий с месячной зарплатой 3000. Занимается работой, связанной с ИТ, более 15 лет, увлекается интернет-технологиями, согласен с культурой открытого исходного кода и обладает собственным уникальным пониманием технологий, связанных с эксплуатацией и обслуживанием. Я очень охотно делюсь и обмениваюсь с вами своим накопленным опытом, опытом и навыками.Не пропустите галантерею. Если вы хотите связаться со мной, вы можете подписаться на официальный аккаунт для получения соответствующей информации.
Введение
curl
это широко используемый инструмент командной строки для запросаWeb
сервер. Его зовут клиент (клиент)URL
означает инструмент.
Он очень мощный, с десятками параметров командной строки. Если у вас есть опыт, вы можете полностью заменитьPostman
Инструменты с графическим интерфейсом этого типа.
Пример использования
В этой статье представлены основные параметры командной строки в качестве ежедневного справочника для удобства. Содержание в основном переведено с «кулинарной книги завитков». Чтобы сэкономить место, следующие примеры не включают вывод во время выполнения.Новички могут прочитать «учебник по curl для начинающих», который я написал ранее.
без каких-либо параметров,curl
заключается в выпускеGET
просить.
$ curl https://www.example.com
Приведенная выше команда дляwww.example.com
проблемаGET
Запрос, содержимое, возвращенное сервером, будет выведено в командной строке.
-A
Параметр -A указывает заголовок пользовательского агента для клиента, т.е.User-Agent
.curl
Строка пользовательского агента по умолчанию:curl/[version]
.
$ curl -A 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36' https://google.com
Приведенная выше команда будетUser-Agent
изменить наChrome
браузер.
$ curl -A '' https://google.com
Приведенная выше команда удалитUser-Agent
Заголовок. Вы также можете пройти-H
Параметр указывает заголовок напрямую, изменяяUser-Agent
.
$ curl -H 'User-Agent: php/1.0' https://google.com
-b
-b
Параметры используются для отправки на серверCookie
.
$ curl -b 'foo=bar' https://google.com
Приведенная выше команда сгенерирует заголовокCookie: foo=bar
, отправить на серверfoo
, значениеbar
изCookie
.
$ curl -b 'foo1=bar' -b 'foo2=baz' https://google.com
Приведенная выше команда отправляет дваCookie
.
$ curl -b cookies.txt https://www.google.com
Приведенная выше команда читает локальный файлcookies.txt
, который устанавливается серверомCookie
(видеть-c
параметры), отправить его на сервер.
-c
-c
Параметр будет установлен серверомCookie
Записать в файл.
$ curl -c cookies.txt https://www.google.com
Приведенная выше команда изменит серверHTTP
ответ на наборCookie
записать в текстовый файлcookies.txt
.
-d
-d
параметры для отправкиPOST
Запрошенное тело данных.
$ curl -d'login=emma&password=123'-X POST https://google.com/login
# 或者
$ curl -d 'login=emma' -d 'password=123' -X POST https://google.com/login
использовать-d
После параметров,HTTP
Запрос автоматически добавит заголовокContent-Type : application/x-www-form-urlencoded
. и автоматически преобразует запрос вPOST
метод, поэтому его можно опустить-X POST
.
-d
Параметр может считывать данные локального текстового файла и отправлять их на сервер.
$ curl -d '@data.txt' https://google.com/login
Приведенная выше команда читаетdata.txt
Содержимое файла отправляется на сервер в виде тела данных.
--data-urlencode
--data-urlencode
параметр эквивалентен-d
,ОтправитьPOST
Запрошенное тело данных, разница в том, что отправленные данные будут автоматически обработаныURL
кодирование.
$ curl --data-urlencode 'comment=hello world' https://google.com/login
В приведенном выше коде данные, отправленныеhello world
Между ними есть пространствоURL
кодирование.
-e
-e
параметры используются для установкиHTTP
заголовокReferer
, что указывает на источник запроса.
$ curl -e 'https://google.com?q=example' https://www.example.com
Приведенная выше команда будетReferer
заголовок установлен наhttps://google.com?q=example
.
-H
Параметры можно добавить напрямую, добавив заголовокReferer
, для достижения того же эффекта.
$ curl -H 'Referer: https://google.com?q=example' https://www.example.com
-F
-F
Параметры используются для загрузки бинарных файлов на сервер.
$ curl -F 'file=@photo.png' https://google.com/profile
Приведенная выше команда дастHTTP
запрос с заголовкамиContent-Type: multipart/form-data
, затем поместите файлphoto.png
в видеfile
Загрузка поля.
-F
Параметры могут быть указаныMIME
Типы.
$ curl -F 'file=@photo.png;type=image/png' https://google.com/profile
Приведенная выше команда указываетMIME
Типimage/png
,иначеcurl
положитMIME
тип установлен наapplication/octet-stream
.
-F
Параметр также может указывать имя файла.
$ curl -F 'file=@photo.png;filename=me.png' https://google.com/profile
В приведенной выше команде исходное имя файлаphoto.png
, но файл, полученный сервером, называетсяme.png
.
-G
-G
параметры используются для построенияURL
Строка запроса.
$ curl -G -d 'q=kitties' -d 'count=20' https://google.com/search
Приведенная выше команда выдастGET
запрос, фактически запрошенный URL-адресhttps://google.com/search?q=kitties&count=20
. если опущено--G
, выдастPOST
просить.
Если данные нужныURL
кодирование, можно комбинировать--data--urlencode
параметр.
$ curl -G --data-urlencode 'comment=hello world' https://www.example.com
-H
-H
добавление параметраHTTP
Заголовки запросов.
$ curl -H 'Accept-Language: en-US' https://google.com
Добавьте к приведенной выше командеHTTP
ЗаголовокAccept-Language: en-US
.
$ curl -H 'Accept-Language: en-US' -H 'Secret-Message: xyzzy' https://google.com
Добавьте два к приведенной выше командеHTTP
Заголовок.
$ curl -d '{"login": "emma", "pass": "123"}' -H 'Content-Type: application/json' https://google.com/login
Добавьте к приведенной выше командеHTTP
Заголовки запросаContent-Type: application/json
, затем используйте-d
отправка параметровJSON
данные.
-i
-i
Параметр выводит ответ от сервераHTTP
Заголовок.
$ curl -i https://www.example.com
После того, как приведенная выше команда получает ответ сервера, она сначала выводит заголовок ответа сервера, затем пустую строку, а затем выводит исходный код веб-страницы.
-I
-I
параметры на серверHEAD
запрос, сервер вернетHTTP
Заголовок распечатывается.
$ curl -I https://www.example.com
Приведенная выше команда выводит пару серверовHEAD
ответ на запрос.
--head
параметр эквивалентен-I
.
$ curl --head https://www.example.com
-k
-k
параметр указывает пропускSSL
обнаружение.
$ curl -k https://www.example.com
Приведенная выше команда не будет проверять серверSSL
Сертификат правильный.
-L
-L
параметр будетHTTP
Запрос следует за перенаправлением сервера.curl
По умолчанию перенаправления не выполняются.
$ curl -L -d 'tweet=hi' https://api.twitter.com/tweet
--limit-rate
--limit-rate
используется для ограниченияHTTP
Пропускная способность запроса и ответа, имитирующая среду с низкой скоростью интернета.
$ curl --limit-rate 200k https://google.com
Приведенная выше команда ограничит пропускную способность до каждой секунды200K
байт.
-o
-o
Параметр сохраняет ответ сервера в файл, что эквивалентноwget
Заказ.
$ curl -o example.html https://www.example.com
Приведенная выше команда будетwww.example.com
сохранить какexample.html
.
-O
-O
Параметр сохраняет ответ сервера в файл и задаетURL
Последняя часть файла используется как имя файла.
$ curl -O https://www.example.com/foo/bar.html
Приведенная выше команда сохраняет ответ сервера в файл с именемbar.html
.
-s
-s
Параметр не будет выводить информацию об ошибках и прогрессе.
$ curl -s https://www.example.com
Если в приведенной выше команде возникает ошибка, сообщение об ошибке отображаться не будет. Если ошибок не возникает, результат операции будет отображаться в обычном режиме.
Если хотитеcurl
Без создания какого-либо вывода можно использовать следующую команду.
$ curl -s -o /dev/null https://google.com
-S
-S
Параметр указывает, что выводится только информация об ошибке, обычно с-s
использовать вместе.
$ curl -s -o /dev/null https://google.com
Приведенная выше команда не выводит ничего, если не возникает ошибка.
-u
-u
Параметры используются для установки имени пользователя и пароля для аутентификации сервера.
$ curl -u 'bob:12345' https://google.com/login
Приведенная выше команда устанавливает имя пользователя какbob
, пароль12345
, а затем преобразовать его вHTTP
ЗаголовокAuthorization: Basic Ym9iOjEyMzQ1
.
curl
в состоянии идентифицироватьURL
Логин и пароль внутри.
$ curl https://bob:12345@google.com/login
Вышеупомянутая команда может распознатьURL
Внутри имени пользователя и пароля преобразуйте его в тот, что в предыдущем примере.HTTP
Заголовок.
$ curl -u 'bob' https://google.com/login
Приведенная выше команда устанавливает только имя пользователя.После выполненияcurl
У пользователя запрашивается пароль.
-v
-v
Весь процесс передачи выходных параметров используется для отладки.
$ curl -v https://www.example.com
--trace
Аргументы также можно использовать для отладки, а также выводятся необработанные двоичные данные.
$ curl --trace - https://www.example.com
-x
-x
спецификация параметраHTTP
Прокси для запроса.
$ curl -x socks5://james:cats@myproxy.com:8080 https://www.example.com
Приведенная выше команда указываетHTTP
запрос черезmyproxy.com:8080
изsocks5
Агент выдан.
Если прокси-протокол не указан, по умолчанию используетсяHTTP
.
$ curl -x james:cats@myproxy.com:8080 https://www.example.com
В приведенной выше команде запрошенный прокси используетHTTP
протокол.
-X
-X
спецификация параметраHTTP
способ запроса.
$ curl -X POST https://www.example.com
Вышеупомянутая команда выдается на https://www.example.comPOST
просить.
Ссылка на ссылку
- Curl Cookbook
Источник: веб-журнал Жуань Ифэн.
Оригинал: http://t.cn/AiRQUQlz
Заглавное изображение: из Google Image Search
Авторское право: Авторские права на эту статью принадлежат оригинальному автору
Вклад: добро пожаловать, электронная почта: editor@hi-linux.com