С полями:
curl --data "param1=value1¶m2=value2" https://example.com/resource.cgi
С полями, указанными индивидуально:
curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi
Multipart:
curl --form "[email protected]" https://example.com/resource.cgi
Многосторонний документ с полями и именем файла:
curl --form "[email protected];filename=desired-filename.txt" --form param1=value1 --form param2=value2 https://example.com/resource.cgi
Без данных:
curl --data '' https://example.com/resource.cgi
curl -X POST https://example.com/resource.cgi
curl --request POST https://example.com/resource.cgi
Для получения дополнительной информации смотрите руководство по cURL. Полезным является учебник cURL по эмуляции веб-браузера.
В libcurl используйте функцию curl_formadd()
для создания формы перед ее отправкой обычным способом. Дополнительную информацию см. в документации libcurl.
Для больших файлов следует добавить параметры для отображения прогресса загрузки:
curl --tr-encoding -X POST -v -# -o output -T filename.dat \
http://example.com/resource.cgi
Параметр -o output
обязателен, иначе индикатор прогресса не появится.
For a RESTful HTTP POST containing XML:
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:text/xml"
.
or for JSON, use the following:
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:application/json"
.
This will allow you to read the contents of the file named filename.txt
and send it as a post request.
Данные из stdin с -d @-
.
Пример:
echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown
Вывод:
<p>Hello <strong>world</strong>!</p>
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi
это пример, приведенный в Curl Example Manual.
Используйте %26 для амперсанда, если приведенный выше пример не работает:
curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi
Если вы хотите войти на сайт, выполните следующие действия:
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/
Первый запрос сохраняет куки сессии (которая предоставляется после успешного входа) в "Верхние" и файл. Отныне вы можете использовать куки для аутентификации в любой части страницы, вы, как правило, после входа в браузер.
curl -v --data-ascii var=value http://example.com
и существует множество других опций, проверьте curl --help
для получения дополнительной информации.
Если вы ленивы, вы можете получить Google-Chrome, чтобы сделать всю работу за вас.
Хром будет копировать все данные запроса в синтаксисе завиток.
Хром использует --сведения 'параметр1=привет&параметр2=мир', по которым можно сделать более читаемым с помощью одного
-Dили
-Фв параметр в зависимости от типа POST-запрос, который вы хотите отправить, который может быть либо применение/х-www-формы-urlencoded или multipart/данные формы
соответственно.
Это будет пост-Эд, как и применение/х-www-формы-urlencoded` (используется для большинства форм, Дон'т содержать загружает файл):
в
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-d param1=hello \
-d name=dinsdale
Для multipart/данные формы
применения -Ф
(обычно используется с формами, которые содержат загружает файл, или где порядок полей важен, или там, где требуется несколько полей с одинаковым именем):
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-F param1=hello \
-F name=dinsdale \
-F name=piranha
<суп>модели User-Agent заголовка
обычно не требуется, но я'вэ бросил ее на всякий случай. Вы можете избежать необходимости установки агента пользователя при каждом запросе на создание ~/.файл curlrc
, который содержит, например, пользователь-агент: "в браузере Mozilla/2.2" и в
</SUP и ГТ;