发出 POST 请求
用于发出POST请求的CURL命令的一般形式如下。
curl -X POST [options] [URL]
请求主体的类型由其Content-Type标头来表示。
一般来说,POST请求是通过一个HTML表单发送的。发送到表单的数据通常以multipart/form-data
或application/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-data
Content-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