Curl предлагает серию различных вызовов HTTP-методов с префиксом X, но также предлагает те же методы без. Я пробовал оба, и, кажется, не могу понять разницу. Может ли кто-нибудь быстро объяснить мне, чем отличаются эти две операции?
источник
Curl предлагает серию различных вызовов HTTP-методов с префиксом X, но также предлагает те же методы без. Я пробовал оба, и, кажется, не могу понять разницу. Может ли кто-нибудь быстро объяснить мне, чем отличаются эти две операции?
По умолчанию вы используете curl, не указывая явно, какой метод запроса использовать. Если вы просто передадите URL-адрес HTTP, curl http://example.com
он будет использовать GET. Если вы используете -d
или -F
curl будет использовать POST, -I
вызовет HEAD и -T
сделает его PUT.
Если по какой-либо причине вас не устраивают варианты по умолчанию, которые делает curl за вас, вы можете переопределить эти методы запроса, указав -X [WHATEVER]
. Таким образом, вы можете, например, отправить DELETE, выполнив 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.
(Впоследствии я использовал свой собственный ответ здесь, чтобы заполнить FAQ по curl, чтобы охватить это .)
Современные версии curl будут информировать пользователей об этом ненужном и потенциально опасном использовании -X, когда включен подробный режим ( -v
) -, чтобы пользователи знали. Дальнейшее объяснение и мотивация в этом сообщении блога .
Вы можете попросить curl преобразовать набор -d
параметров и вместо того, чтобы отправлять их в теле запроса с помощью POST, поместить их в конец строки запроса URL-адреса и выполнить GET с использованием `-G. Как это:
curl -d name=daniel -d grumpy=yes -G https://example.com/
-X [ваш метод]
X позволяет вам переопределить значение по умолчанию Get
** нижний
x
регистр исправлен на верхнийX
источник
Использование
-X [WHATEVER]
просто изменяет строку метода запроса, используемую в HTTP-запросе. Это легче понять с помощью двух примеров - одного с-X [WHATEVER]
и другого без - и соответствующих заголовков HTTP-запроса для каждого из них:источник