我正在尝试为此curl请求创建一个PHP api
curl 'http://xx.74.229.xxx:9200/snapdeal_electronics_mobiles_cat/_search' -d '{ "query": { "match" : { "brand" : "Samsung" } } }'
在终端中执行此操作时,我得到了响应,但是当我尝试在PHP脚本中直接使用它时,它无法正常工作
<?php
function httpGet($url)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
// curl_setopt($ch,CURLOPT_HEADER, false);
$output=curl_exec($ch);
curl_close($ch);
return $output;
}
echo httpGet("http://xx.74.229.189:9200/snapdeal_electronics_mobiles_cat/_search' -d '{ "query": { "match" : { "brand" : "Samsung" } } }");
?>
请提出一些解决方案,这是一个获取请求
答案 0 :(得分:2)
您正在错误地创建卷曲请求,它也是您尝试不是GET的POST请求,因为您包含一个带有&#34; -d&#34;的POST主体。开关。
您需要从POST正文中分离URL并传递2个参数,一个用于POST数据,一个用于POST数据,如下所示:
<?php
function httpGet($url, $data)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
// curl_setopt($ch,CURLOPT_HEADER, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $data); //POST data
$output=curl_exec($ch);
curl_close($ch);
return $output;
}
echo httpGet("http://xx.74.229.189:9200/snapdeal_electronics_mobiles_cat/_search",'{ "query": { "match" : { "brand" : "Samsung" } } }');
?>