gpt4 book ai didi

PHP 获取 PUT 请求体

转载 作者:行者123 更新时间:2023-12-02 00:24:48 25 4
gpt4 key购买 nike

我目前正在 PHP 中开发 Restful Json-API。我想向 items/:id 发送 PUT 请求以更新记录。数据将以 application/json 形式传输。

我想调用 API

curl -H "Content-Type: application/json" -X PUT -d '{"example" : "data"}' "http://localhost/items/someid"

在服务器端,我无法检索请求正文。我试过了

file_get_contents("php://input");

但这会返回一个空字符串。 fopen()/fread() 组合也不起作用。

通过 POST 调用时,一切正常,我可以在服务器端完美读取 json。但 API 不再是 Restful 了。有人有解决方案吗?还有其他方式发送和接收 Json 吗?

顺便说一句,我正在使用 Slim Framework 开发 API .

最佳答案

php://input 对于 PUT 请求只能读取一次:

Note: A stream opened with php://input can only be read once; the stream does not support seek operations. However, depending on the SAPI implementation, it may be possible to open another php://input stream and restart reading. This is only possible if the request body data has been saved. Typically, this is the case for POST requests, but not other request methods, such as PUT or PROPFIND.

http://php.net/manual/en/wrappers.php.php

Slim 框架已经根据请求读取数据。从已读取的 Request 对象中获取数据。

关于PHP 获取 PUT 请求体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9684315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com