小编典典

如何使用curl将JSON发布到PHP

php

我可能还差得远,但是我整个下午一直在尝试在本教程PHP框架教程中运行curlpost命令。我不明白的是PHP应该如何解释我的POST,它总是以空数组的形式出现。

curl -i -X POST -d '{"screencast":{"subject":"tools"}}'  \
      http://localhost:3570/index.php/trainingServer/screencast.json

(其中的斜线只是让我看起来不像是个白痴,而是我使用PHP 5.2在Windows上执行此操作,也曾在与Linux
curl相同版本的Linux服务器上尝试过)

我必须缺少一些东西,因为它看起来很简单,帖子解释得不好,如果可以的话,一切都会很好。

这就是我得到的:

HTTP / 1.1 409冲突
日期:2009年5月1日,星期五,格林尼治标准时间
服务器:Apache / 2.2.8(Win32)PHP / 5.2.6
X-Powered-By:PHP / 5.2.6
传输编码:分块
内容类型:text / html; 字符集= iso-8859-1

{“ screencast”:{“ id”:null,“ subject”:null,“ body”:null,
         “ dataUrl”:null,“ dataMedium”:null,“ createdOn”:null,“ author”:null}}

阅读 253

收藏
2020-05-26

共1个答案

小编典典

Jordans关于为什么不填充$ _POST数组的分析是正确的。但是,您可以使用

$data = file_get_contents("php://input");

只是检索http正文并自己处理。

从协议的角度来看,这实际上是更正确的,因为无论如何您实际上并不是在处理http多部分表单数据。另外,在发布请求时,将application /json用作内容类型。

2020-05-26