我正在尝试使用Couchbase REST API将文档添加到现有文档中。我只是在编写代码的同时在Postman中进行测试。
POST:
http://<ip>:8091/pools/default/buckets/<bucketname>/docs/testdoc1?rev=1
Headers:
Accept: application/json
Authorization : xxxxx
Body:
Raw JSON (application/json)
{
"Name": "xxx",
"Address": "yyy",
"Phone number": "xxxx",
"Badge": "yyy",
"BadgeType": "xxx"
}
当我在邮递员中发送上述邮件时,它正在添加此新文档。在长沙发文档/存储桶下,但在正文字段上显示为“二进制文档,base64不可用”
我什至从我的html代码中尝试过,但是json主体在couchbase端都没有收到。
<!DOCTYPE html>
<html>
<body>
<input type="submit" value="Start" onclick="submit()">
<script type="text/javascript">
var params = {
"Name": "xxx",
"Address": "yyy",
"Phone number": "xxxx",
"Badge": "yyy",
"BadgeType": "xxx"
}
function submit() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
alert(xhr.response);
}
}
xhr.open('post', 'http://<ip>:8091/pools/default/buckets/<buckname>/docs/testdochtml?rev=1', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Accept', 'application/json');
xhr.setRequestHeader('Authorization', 'Basic ' + 'xxxxxxx');
xhr.send(JSON.stringify(params));
}
</script>
<p>Click on the submit button.</p>
</body>
</html>
有人可以指导我为什么JSON无法以正确的方式出现吗?
答案 0 :(得分:2)
首先,据我所知,不支持该端点,并且未记录该端点。如果您看到某处支持 ,请告诉我,因为我认为这需要纠正。您应该改用其中一种SDK(Java,.NET,Node等)。
话虽如此,我能够通过Postman使其正常运行。您不能只发送原始JSON作为文档。您需要POST编码的表单数据。该端点期望的值之一是“值”,其中包含编码的JSON文档。
这是我所做的一个示例(我称自己的存储桶为“ so”):
POST /pools/default/buckets/so/docs/testdoc2 HTTP/1.1
Host: localhost
cache-control: no-cache
Postman-Token: ba87ef4e-4bba-42b4-84da-ae775b26dbcb
value=%7B%0A%09%22Name%22%3A+%22xxx%22%2C%0A%09%22Address%22%3A+%22yyy%22%2C%0A%09%22Phone+number%22%3A+%22xxxx%22%2C%0A%09%22Badge%22%3A+%22yyy%22%2C%0A%09%22BadgeType%22%3A+%22xxx%22%0A%7D%0A
请注意,上面的值只是您问题中的URL编码的JSON(邮递员为我编码,并且邮递员也必须自己添加了缓存控制标头,因为我未指定):