我有一个试图在CloudKit数据库中创建记录的php脚本。
它返回此错误:
object(stdClass)#1(3){[“uuid”] =>串(36) “c70072a1-fab6-491b-a68f-03b9056223e1”[“serverErrorCode”] =>
string(11)“BAD_REQUEST”[“reason”] =>串(62) “BadRequestException:[line:2,column:10]上的意外输入”}
我认为这确切地告诉我问题是什么,但我不知道如何解释它。第2行和第10列在哪里?
我认为它与我在创建记录请求中发送的JSON有关。
$url = 'https://api.apple-cloudkit.com/database/1/' . $CONTAINER . '/development/public/records/modify';
$opDict = '{"operationType": "create",
"record":"Artists",
"fields": {"firstName":{"value":"Mei"},
"lastName": {"value":"Chen"},
"principalDiscipline": {"value":""},
"secondaryDiscipline":{"value":""}},
"recordName":"Mei Chen"}';
$body = '{"operations":['.$opDict.']}';
echo $body;
当我检查$ body
的输出时{“operations”:[{“operationType”:“创建”,“记录”:“艺术家”, “fields”:{“firstName”:{“value”:“Mei”},“lastName”:{“value”:“Chen”}, “principalDiscipline”:{“value”:“”}, “secondaryDiscipline”:{“value”:“”}},“recordName”:“Mei Chen”}}}
它传递JSON lint,所以我不确定它是否是JSON问题。
有人可以向我解释如何解释我从CloudKit获得的错误。文档对错误有点模糊。
答案 0 :(得分:0)
我对CloudKit一无所知,但我发现this documentation page有以下示例:
{
"operationType" : "create",
"record" : {
"recordType" : "Artist",
"fields" : {
"firstName" : {"value" : "Mei"},
"lastName" : {"value" : "Chen"}
}
"recordName" : "Mei Chen"
},
}
在数据结构方面,与您尝试发送的内容完全不同
(您的record
不是字典)和内容(您没有recordType
)。
因此,虽然您的JSON在语法上是正确的,但您只是发送包含在有效JSON中的无效内容数据,这很可能是您看到错误消息的原因。