#php #curl #elasticsearch
#php #curl #elasticsearch
Вопрос:
Я пытаюсь обновить один из своих документов с помощью PHP и curl. У меня есть этот исходный код:
protected function call($url, $method="GET", $payload=null) {
$conn = $this->ch;
$protocol = "http";
$requestURL = $protocol . "://" . $this->host .":9200". $url;
curl_setopt($conn, CURLOPT_URL, $requestURL);
curl_setopt($conn, CURLOPT_TIMEOUT, self::TIMEOUT);
curl_setopt($conn, CURLOPT_PORT, $this->port);
curl_setopt($conn, CURLOPT_RETURNTRANSFER, 1) ;
curl_setopt($conn, CURLOPT_CUSTOMREQUEST, strtoupper($method));
curl_setopt($conn, CURLOPT_FORBID_REUSE , 0) ;
if (is_array($payload) amp;amp; count($payload) > 0)
{
echo "<br/>[-] json_encode";
curl_setopt($conn, CURLOPT_POSTFIELDS, json_encode($payload));
}
else
{
curl_setopt($conn, CURLOPT_POSTFIELDS, array($payload));
}
$response = curl_exec($conn);
if ($response !== false) {
$data = json_decode($response, true);
if (!$data) {
$data = array('error' => $response, "code" => curl_getinfo($conn, CURLINFO_HTTP_CODE));
}
}
else { //... error } }
и т.д. …}
«$payload», соответствующий «$value[«title»] = ‘Shining’;» и я вижу json_encode… но у меня есть эта ошибка:
[-] json_encode{«ошибка»: «Исключение ActionRequestValidationException[Ошибка проверки: 1: отсутствует скрипт или документ;]»,»статус»: 500}
Как устранить эту ошибку. заранее спасибо.
Ответ №1:
Вы можете использовать библиотеку elasticsearch … это действительно хорошо.