Standardmäßig verwenden Sie curl, ohne explizit anzugeben, welche Anforderungsmethode verwendet werden soll. Wenn Sie nur eine HTTP-URL wie curl http://example.com
diese übergeben, wird GET verwendet. Wenn Sie verwenden -d
oder -F
locken, wird POST verwendet, -I
verursacht einen KOPF und -T
macht es zu einem PUT.
Wenn Sie aus irgendeinem Grund mit diesen Standardoptionen, die Curl für Sie ausführt, nicht zufrieden sind, können Sie diese Anforderungsmethoden durch Angabe überschreiben -X [WHATEVER]
. Auf diese Weise können Sie beispielsweise ein DELETE senden, indem Sie dies tun curl -X DELETE [URL]
.
Es ist daher sinnlos zu tun, curl -X GET [URL]
da GET sowieso verwendet werden würde. In der gleichen Weise ist es sinnlos, dies zu tun. curl -X POST -d data [URL]...
Sie können jedoch eine lustige und etwas seltene Anfrage stellen, die einen Anfragetext in einer GET-Anfrage mit so etwas wie sendet curl -X GET -d data [URL]
.
Tiefer Graben
curl -GET
(mit einem einzigen Strich) ist für diesen Zweck einfach falsch. Das entspricht die Angabe von -G
, -E
und -T
Optionen , und das wird etwas ganz anderes tun.
Es gibt auch eine Curl-Option, --get
mit der die Dinge nicht verwechselt werden können. Dies ist die Langform von -G, mit der die angegebenen Daten -d
in eine GET-Anforderung anstelle eines POST konvertiert werden .
(Ich habe anschließend hier meine eigene Antwort verwendet, um die häufig gestellten Fragen zu Curl zu füllen .)
Warnungen
Moderne Versionen von curl informieren Benutzer über diese unnötige und möglicherweise schädliche Verwendung von -X, wenn der ausführliche Modus aktiviert ist ( -v
) -, um Benutzer darauf aufmerksam zu machen. Weiter erklärt und motiviert in diesem Blogbeitrag .
-G konvertiert einen POST + -Körper in eine GET + -Abfrage
Sie können curl bitten, eine Reihe von -d
Optionen zu konvertieren , und anstatt sie mit POST im Anforderungshauptteil zu senden, setzen Sie sie an das Ende der Abfragezeichenfolge der URL und geben Sie ein GET mit der Verwendung von `-G aus. So was:
curl -d name=daniel -d grumpy=yes -G https://example.com/