使用curl将JSON发布到PHP:揭开缺失的链接
当尝试在PHP中使用curl post命令进行JSON数据传输时, PHP 对 POST 数据的解释可能会遇到空数组的问题。要解决这个问题,秘诀在于改变命令结构。
解决误解
默认情况下,curl 中的 -d 参数需要表单编码的数据。为了指示 PHP 正确解释 JSON 内容,必须引入 -H 参数。正确的命令语法如下:
curl -v -H "Content-Type: application/json" -X POST -d '{"screencast":{"subject":"tools"}}' \ http://localhost:3570/index.php/trainingServer/screencast.json
通过在 -H 参数中指定“Content-Type: application/json”,我们通知 PHP POST 数据是 JSON 格式。这允许 PHP 正确解析和处理 JSON 对象,并将“tools”值分配给“subject”属性。
示例响应
执行修改后的命令后,来自 PHP 服务器的响应现在将反映正确解释的 JSON 数据,从而消除了空数组的问题:
HTTP/1.1 200 OK Date: Fri, 01 May 2009 22:03:00 GMT Server: Apache/2.2.8 (Win32) PHP/5.2.6 Content-Type: application/json; charset=utf-8 { "screencast": { "id": null, "subject": "tools", "body": null, "dataUrl": null, "dataMedium": null, "createdOn": null, "author": null } }
以上是如何使用 cURL 正确地将 JSON 数据发布到 PHP 服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!