gpt4 book ai didi

javascript - php 在 Knack 数据库中创建记录不起作用

转载 作者:行者123 更新时间:2023-11-28 03:43:10 25 4
gpt4 key购买 nike

嗯,之前尝试过一次,但没有得到任何回应。虽然取得了一些进展,所以我想我会再试一次。我可以使用 JavaScript 在 Knack 数据库中通过他们的 api 成功创建一条记录。尝试用 php 代码代替 javascript。并不指望完全熟悉 Knack 数据库,尽管那很好,但只是希望一些 php 怪物可能会看到这段代码并发现一些可怕的错误。或其他什么。

无论如何,下面是有效的 javascript,然后是对 php 版本的典型尝试,但结果只是导致内部服务器错误。预先感谢您的任何帮助。

工作 JavaScript:在数据库中创建记录

var settings = {
"async": true,
"crossDomain": true,
"url": "https://#############.com/v1/pages/some_scene/views/some_view/records",
"method": "POST",
"headers": {
"X-Knack-Application-Id": "########################",
"X-Knack-REST-API-Key": "########-####-####-####-############",
"Content-Type": "application/json",
},
"processData": false,
"data": '{ "some_field": "some data" }'
}


$.ajax(settings).done(function (response) {
console.log(response);
});

php 版本:导致内部服务器错误

$request = new HttpRequest();
$request->setUrl('https://#############.com/v1/pages/scene_23/views/view_36/records');
$request->setMethod(HTTP_METH_POST);

$request->setHeaders(array(
'Content-Type' => 'application/json',
'X-Knack-REST-API-Key' => '########-####-####-####-############',
'X-Knack-Application-Id' => '########################'
));

$request->setBody('{
"some_field": "some data"
}');

try {
$response = $request->send();

echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}

有趣的附录。结果我在尝试执行此行时遇到内部服务器错误:

$request = new HttpRequest();

我可以从该服务器运行 php 代码,所以...我不确定这是关于什么的。如果可以的话,我会尝试在没有 pecl 或 curly 的情况下运行。我需要类似的东西来处理 http 请求吗?

最佳答案

根据服务器的配置(特别是 allow_url_fopen ),您也许可以使用 file_get_contents()在不安装curl的情况下发出此请求(使用php 5.6测试):

$request_url = 'https://#############.com/v1/pages/scene_23/views/view_36/records';

$request_body = '{"some_field":"some data"}';

$request_context = stream_context_create([
'http' => [
'method' => 'POST',
'header' => [
'X-Knack-Application-Id: ########################',
'X-Knack-REST-API-Key: ########-####-####-####-############',
'Content-Type: application/json',
],
'content' => $request_body,
'ignore_errors' => true, // return error message, if any, in response_body
],
]);

$response_body = file_get_contents($request_url, false, $request_context);

var_dump($response_body);

关于javascript - php 在 Knack 数据库中创建记录不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48750603/

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