Respostas:
Por padrão, você usa curl sem dizer explicitamente qual método de solicitação usar. Se você acabou de passar um URL HTTP, curl http://example.com
ele usará GET. Se você usar -d
ou -F
enrolar usará o POST, -I
causará uma CABEÇA e-T
fará uma COLOCAÇÃO.
Se, por qualquer motivo, você não estiver satisfeito com essas opções padrão que a curvatura faz por você, você pode substituir esses métodos de solicitação especificando -X [WHATEVER]
. Dessa forma, você pode, por exemplo, enviar um DELETE fazendocurl -X DELETE [URL]
.
Portanto, é inútil fazer curl -X GET [URL]
como GET seria usado de qualquer maneira. Da mesma maneira, não faz sentido fazer isso. curl -X POST -d data [URL]...
Mas você pode fazer uma solicitação divertida e um tanto rara que envia um corpo de solicitação em uma solicitação GET com algo comocurl -X GET -d data [URL]
.
curl -GET
(usando um único traço) está errado para esse fim. Isso é o equivalente a especificar o -G
, -E
e-T
opções e que vai fazer algo completamente diferente.
Há também uma opção de ondulação chamada --get
para não confundir as questões. É a forma longa de -G, usada para converter dados especificados com-d
em uma solicitação GET em vez de um POST.
(Subseqüentemente, usei minha própria resposta aqui para preencher as perguntas frequentes de curl para cobrir esta .)
As versões modernas do curl informarão os usuários sobre esse uso desnecessário e potencialmente prejudicial de -X quando o modo detalhado estiver ativado ( -v
) - para conscientizar os usuários. Mais explicado e motivado nesta postagem do blog .
Você pode pedir ao curl para converter um conjunto de -d
opções e, em vez de enviá-las no corpo da solicitação com POST, colocá-las no final da string de consulta da URL e emitir um GET, com o uso de `-G. Como isso:
curl -d name=daniel -d grumpy=yes -G https://example.com/
-X [seu método]
X permite substituir o padrão 'Get'
** corrigido em minúsculas x
para maiúsculasX
O uso de -X [WHATEVER]
apenas altera a sequência de métodos da solicitação usada na solicitação HTTP. Isso é mais fácil de entender com dois exemplos - um com -X [WHATEVER]
e um sem - e os cabeçalhos de solicitação HTTP associados a cada um:
# curl -XPANTS -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.224.86.126) port 80 (#0)
> PANTS / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*
# curl -o nul -v http://neverssl.com/
* Connected to neverssl.com (13.33.50.167) port 80 (#0)
> GET / HTTP/1.1
> Host: neverssl.com
> User-Agent: curl/7.42.0
> Accept: */*