Каков синтаксис командной строки cURL для выполнения POST-запроса?

Как сделать запрос POST с помощью инструмента командной строки cURL?

Комментарии к вопросу (1)

С полями:

curl --data "param1=value1&param2=value2" https://example.com/resource.cgi

С полями, указанными индивидуально:

curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi

Multipart:

curl --form "fileupload=@my-file.txt" https://example.com/resource.cgi

Многосторонний документ с полями и именем файла:

curl --form "fileupload=@my-file.txt;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 обязателен, иначе индикатор прогресса не появится.

Комментарии (6)

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.

Комментарии (5)
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 
Комментарии (0)

Если вы хотите войти на сайт, выполните следующие действия:

curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/

Первый запрос сохраняет куки сессии (которая предоставляется после успешного входа) в "Верхние" и файл. Отныне вы можете использовать куки для аутентификации в любой части страницы, вы, как правило, после входа в браузер.

Комментарии (1)
curl -v --data-ascii var=value http://example.com

и существует множество других опций, проверьте curl --help для получения дополнительной информации.

Комментарии (0)

Если вы ленивы, вы можете получить Google-Chrome, чтобы сделать всю работу за вас.

  1. Щелкните правой кнопкой мыши форму вы хотите отправить, и выберите проверить. Откроется панель инструментов разработчика.
  2. Выберите Сеть на вкладке DevTools и отметьте сохранить отчет флажок.
  3. Заполните формуляр и выберите запись с методом POST (щелкните правой кнопкой мыши на заголовке любого столбца и убедитесь, что метод это проверено).
  4. Щелкните правой кнопкой мыши на строке с поста, а затем выберите копия > копирование как curl.

Хром будет копировать все данные запроса в синтаксисе завиток.

Хром использует --сведения 'параметр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 и ГТ;

Комментарии (0)