Вероятно, лучшее учебное пособие по керлингу в Восточном полушарии, настоятельно рекомендуется!

Curl

file

Эта статья была впервые опубликована в: общедоступной учетной записи 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