我向cloudant数据库发送curl请求以添加新文档。但是,每当我运行它时,它都会抱怨数据库已经存在,然后我必须在url中重命名db。但是,这只会创建一个新的空数据库。我的curl请求有什么问题?
这是我使用的代码:
credentials = base64_encode($login.':'.$password);
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => $data,
CURLOPT_HTTPHEADER => array(
'Authorization: Basic '.$credentials,
"content-type: application/json"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
if($this->debug === 1) {
echo $err;
var_dump($info);
}
return false;
} else {
return $response;
}
这是使用它的代码:
$journey_data = array(
"name" => "name",
"TEST" => "TESTIN TED"
);
$this->cloudent_controller = modules::load('cloudent_integration/cloudent_integration');
$url = "https://test.cloudant.com/fubar";
$result = $this->cloudent_controller->createDocument($url, json_encode($journey_data));
var_dump($result);
die;
是的我正在使用代码点火器和hmvc模式,但这些并不重要,因为我正在回复。
回应:
string(95) "{"error":"file_exists","reason":"The database could not be created, the file already exists."} "
答案 0 :(得分:1)
要在couchDB服务器中创建新文档,您需要将PUT或POST请求发送到您希望保存文档的URL,这意味着您需要在URL中指定数据库和文档名称:
https://test.cloudant.com/fubar/doc_id
如果您将PUT或POST请求直接发送到数据库,就像我认为的那样,您要求couchDB创建该数据库。