使用PHP发送/接收PUT请求,无法解析请求体?

joh*_*ohn 6 php rest

我正在尝试构建一个RESTful APi.

我正在发送一个PUT请求:/ api/customer/1

$data['name'] = 'test';

$ch = curl_init('myurl/api/'.$name);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
$results = json_decode(curl_exec($ch));
Run Code Online (Sandbox Code Playgroud)

我在POSTFIELDS中传递$ data列表,我假设它将在请求体中.

当我去解析时,我正在尝试:

$params = file_get_contents('php://input');
Run Code Online (Sandbox Code Playgroud)

但是,我没有看到我在任何地方传递的变量.

任何建议都会有所帮助,谢谢.

Gla*_*bot 3

的值将是您需要使用parse_str 的$params = file_get_contents('php://input');字符串:

$input = file_get_contents('php://input');
parse_str($input, $params);
print_r($params);
Run Code Online (Sandbox Code Playgroud)

另请注意,在某些情况下php://input只能读取一次,因此您可能必须存储它。