cURL 是一个神奇的实用程序,它允许开发人员下载 URL 的内容、探索响应标头、获取股票报价、确认我们的 GZip 编码是否正常工作等等。 cUrl 在命令行中的另一个重要用途是将表单数据发布到服务器,尤其是在测试中级到高级表单处理时。就像其他 cURL 命令一样,POST 表单数据非常简单。
使用 cURL 发布表单数据
使用 curl -X POST
启动您的 cURL 命令,然后为每个要添加到 POST 的 field=value
添加 -F
:
curl -X POST -F 'username=davidwalsh' -F 'password=something' http://domain.tld/post-to-me.php
如果您使用的是 PHP,则可以在 $_POST
变量上使用 print_r
来查看您的服务器是否按预期接收了 POST 数据:
Array( 'username' => 'davidwalsh', 'password' => 'something' )
如果您需要使用 cURL 发送特定数据类型或标头,请使用 -H
添加标头:
# -d to send raw data curl -X POST -H 'Content-Type: application/json' -d '{"username":"davidwalsh","password":"something"}' http://domain.tld/login
使用 cURL 发布文件
使用 cURL 发布文件略有不同,您需要在文件位置之前、字段名称之后添加 @
:
curl -X POST -F 'image=@/path/to/pictures/picture.jpg' http://domain.tld/upload
使用 PHP 探索 $_FILES
变量数组会显示文件数据,就好像它是通过浏览器中的表单上传的一样:
Array( "image": array( "name" => "picture.jpg" "type" => "image/jpeg", "tmp_name" => "/path/on/server/to/tmp/phprj5rkG", "error" => 0, "size" => 174476 ) )
使用 cURL 发布文件内容可能比您想象的要容易,对吧?
我第一次需要从命令行 POST 文件数据时,我以为我要打架了;相反,我发现 cURL 让这个过程变得简单!