如何用cURL进行POST请求

评论 0 浏览 0 2020-07-24

cURL是一个命令行工具,用于使用支持的协议之一从远程服务器传输数据或向远程服务器传输数据。它被默认安装在macOS和大多数Linux发行版上。

cURL被开发人员用于测试API,查看响应头,并进行HTTP请求。

在这篇文章中,我们将解释如何使用cURL来进行POST请求。HTTP POST方法是用来向远程服务器发送数据的。

发出 POST 请求

用于发出POST请求的curl命令的一般形式如下。

curl -X POST [options] [URL]

-X选项指定了在与远程服务器通信时将使用哪种HTTP请求方法。

请求主体的类型由其Content-Type标头来表示。

一般来说,POST请求是通过一个HTML表单发送的。发送到表单的数据通常以multipart/form-dataapplication/x-www-form-urlencoded内容类型进行编码。

要创建一个POST请求,使用-F选项,然后是field=value对。下面的例子显示了如何向一个有 "姓名 "和 "电子邮件 "字段的表单发出一个POST请求。

curl -X POST -F 'name=linuxize' -F 'email=linuxize@example.com' https://example.com/contact.php

当使用-F选项时,curl使用multipart/form-dataContent-Type发送数据。

另一种提出POST请求的方法是使用-d选项。这将导致curl使用application/x-www-form-urlencoded内容类型来发送数据。

curl -X POST -d 'name=linuxize' -d 'email=linuxize@example.com' https://example.com/contact.php

如果-d选项被使用了一次以上,你可以用&符号来合并数据。

curl -X POST -d 'name=linuxize&email=linuxize@example.com' https://example.com/contact.php

指定Content-Type

要设置一个特定的头或内容类型,请使用-H选项。下面的命令将POST请求类型设置为application/json,并发送一个JSON对象。

$ curl -X POST -H "Content-Type: application/json" \
    -d '{"name": "linuxize", "email": "linuxize@example.com"}' \
    https://example/contact

上载文件

要用curl发送文件,只需在文件位置前添加@符号。该文件可以是一个档案、图像、文件等。

curl -X POST -F 'image=@/home/user/Pictures/wallpaper.jpg' http://example.com/upload

总结

我们已经向你展示了如何使用curl来进行POST请求。关于curl的更多信息,请访问Curl文档页面。

如果你有任何问题或反馈意见,请随时留言。

最后更新2023-03-11
0 个评论
标签