默认情况下,您使用curl,而无需明确说明要使用哪种请求方法。如果您只是传入一个 HTTP URL,例如curl http://example.com
它将使用 GET。如果你使用-d
or -F
卷曲将使用 POST,-I
会导致 HEAD 和-T
将使其成为 PUT。
如果出于某种原因您对curl 为您所做的这些默认选择不满意,您可以通过指定覆盖这些请求方法-X [WHATEVER]
。例如,您可以通过这种方式发送 DELETEcurl -X DELETE [URL]
.
因此这样做是毫无意义的curl -X GET [URL]
因为无论如何都会使用 GET 。同样,这样做也是毫无意义的curl -X POST -d data [URL]...
但是您可以发出一个有趣且有点罕见的请求,在 GET 请求中发送请求正文,其中包含类似内容curl -X GET -d data [URL]
.
深层发掘
curl -GET
(使用一个破折号)对于这个目的来说是错误的。这相当于指定-G https://curl.se/docs/manpage.html#-G, -E https://curl.se/docs/manpage.html#-E and -T https://curl.se/docs/manpage.html#-T选项,这会做一些完全不同的事情。
还有一个名为“curl”的选项--get https://curl.se/docs/manpage.html#-G不要将事情与任何一个混淆。它是-G的长形式,用于转换指定的数据-d https://curl.se/docs/manpage.html#-d变成 GET 请求而不是 POST。
(我随后在这里使用我自己的答案来填充卷曲常见问题解答涵盖这一点 https://curl.se/docs/faq.html#curl_X_gives_me_HTTP_problems.)
Warnings
现代版本的curl将在启用详细模式时通知用户这种不必要且可能有害的-X使用(-v
) - 让用户意识到。进一步解释和激励这篇博文 https://daniel.haxx.se/blog/2015/09/11/unnecessary-use-of-curl-x/.
-G 将 POST + 正文转换为 GET + 查询
您可以要求curl 转换一组-d
选项,而不是使用 POST 在请求正文中发送它们,而是将它们放在 URL 查询字符串的末尾并使用 `-G 发出 GET。像这样:
curl -d name=daniel -d grumpy=yes -G https://example.com/