gpt4 book ai didi

php - 将CURL命令转换为CURL php

转载 作者:行者123 更新时间:2023-12-03 00:50:40 25 4
gpt4 key购买 nike

我正在尝试通过批量API将文档添加到 flex 搜索索引中。我的CURL查询在命令行上工作正常,我将其转换为PHP。

当我尝试运行PHP代码时,什么都没有发生。 flex 搜索中都不会将文档添加到索引中,也不会出现任何错误。

CURL查询:

curl -H "Content-Type:application/json" -XPOST "http://localhost:9200/inven/default/_bulk?pretty" --data-binary "@file_name.json"

PHP查询:
 $ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://localhost:9200/inven/default/_bulk?pretty');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$post = array(
'file' => '@' .realpath('file_name.json')
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_POST, 1);

$headers = array();
$headers[] = 'Content-Type: application/json';
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

我还设置了 ini_set('max_execution_time', 0);,以防万一它超时了。
可能是什么问题?

最佳答案

您没有发送实际的文件内容,而只是发送文件名作为字符串。试试这个:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://localhost:9200/inven/default/_bulk?pretty');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1 );

// The line below assumes the file_name.json is located in the same directory
// with this script, if not change the path to the file with the correct one.
curl_setopt($ch, CURLOPT_POSTFIELDS, file_get_contents('file_name.json') );
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

$result = curl_exec($ch);

if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);

关于php - 将CURL命令转换为CURL php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54113317/

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