По умолчанию вы используете curl без явного указания, какой метод запроса использовать. Если вы просто передадите HTTP-URL вроде curl http://example.com
, он будет использовать GET. Если вы используете -d
или -F
, curl будет использовать POST, -I
вызовет HEAD, а -T
сделает PUT.
Если по какой-либо причине вас не устраивают варианты по умолчанию, которые делает для вас curl, вы можете переопределить эти методы запроса, указав -X [WHATEVER]
. Таким образом, вы можете, например, отправить УДАЛЕНИЕ, выполнив curl -X DELETE [URL]
.
Таким образом, бессмысленно делать curl -X GET [URL]
, поскольку GET будет использоваться в любом случае. В том же духе бессмысленно делать curl -X POST -d data [URL]...
Но вы можете сделать забавный и несколько редкий запрос, который отправляет тело запроса в GET-запросе с чем-то вроде curl -X GET -d data [URL]
.
Копать глубже
curl -GET
(используя одну черту) просто неправильно для этой цели. Это эквивалентно указанию опций -G
, -E
и -T
, и это будет делать что-то совершенно другое.
Также есть опция скручивания под названием --get
, чтобы не путать вопросы ни с одним из них. Это длинная форма -G, которая используется для преобразования данных, указанных с помощью -d
, в запрос GET вместо POST.
(впоследствии я использовал свой собственный ответ здесь, чтобы заполнить curl FAQ, чтобы охватить это .)
Предупреждения
Современные версии curl будут информировать пользователей об этом ненужном и потенциально вредном использовании -X, когда включен подробный режим (-v
) - чтобы пользователи знали об этом. Далее объяснено и мотивировано в этом сообщении в блоге .
-G преобразует тело POST + в запрос GET +
Вы можете попросить curl преобразовать набор параметров -d
и вместо того, чтобы отправлять их в теле запроса с помощью POST, поместить их в конец строки запроса URL-адреса и выполнить GET с использованием `-G , Как это:
curl -d name=daniel -d grumpy=yes -G https://example.com/