gpt4 book ai didi

php - 当 POST 数组*不*为空时,RESTful 服务会出错

转载 作者:搜寻专家 更新时间:2023-10-31 20:44:58 24 4
gpt4 key购买 nike

我正在尝试将 cURL 融入到我对 RESTful 服务的第一次真正尝试中。
(我正在使用 @Phil-Sturgeon 组合在一起的 codeigniter-restserver 库。)

该服务非常适合 GET 请求。
另一方面,POST 向我抛出一个曲线球。使用 POST 数组的尝试是成功的...所有其他尝试似乎都失败了。

代码:

/*** sandbox  ***/
...
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, 'http://localhost/project/api/companies');
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);

// This works.
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, array());

// This throws the error
//curl_setopt($curl_handle, CURLOPT_POSTFIELDS, array('chicken'=>'licken'));

$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
var_export($buffer);
...


/*** RESTful controller ***/
...
function companies_post(){
$this->response('It Works!', 200);
} // end method: companies_post()
...


错误:
当我的 CURLOPT_POSTFIELDS 数组除了为空时,我得到:

An Error Was Encountered
The action you have requested is not allowed.


目标:
我的近期目标是简单地在响应中返回 POST 负载,这样我就可以证明往返有效。
不过,在这一点上,我愿意简单地向 API 发布 任何内容 而不会抛出错误:)

有人听说过这样的事吗?
我在这里缺少什么?

最佳答案

我认为 REST 应用程序的配置文件中的 CSRF 保护设置为 TRUE。您需要将 CSRF token 名称和 CSRF 哈希作为其值传递到您的 curl POST 请求数组中,或者通过将其值更改为 FALSE

来将其关闭
$config['csrf_protection'] = FALSE;

关于php - 当 POST 数组*不*为空时,RESTful 服务会出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14389249/

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