PHP文件_get_contents()在发出get请求时忽略请求正文
我试图发出一个简单的HTTP GET请求来查询Elasticsearch。Elasticsearch语法允许在GET请求中使用请求正文来添加附加查询选项。我正在使用PHP函数file\u get\u contents()发出get请求 问题是,在发出get请求时,file_get_contents()似乎忽略了请求的主体,而在使用POST请求时,它工作正常 如何获取文件\u get\u contents()以正确处理get请求的正文? 我使用的代码如下所示 请注意:PHP文件_get_contents()在发出get请求时忽略请求正文,php,database,http,
elasticsearch,Php,Database,Http,
elasticsearch,我试图发出一个简单的HTTP GET请求来查询Elasticsearch。Elasticsearch语法允许在GET请求中使用请求正文来添加附加查询选项。我正在使用PHP函数file\u get\u contents()发出get请求 问题是,在发出get请求时,file_get_contents()似乎忽略了请求的主体,而在使用POST请求时,它工作正常 如何获取文件\u get\u contents()以正确处理get请求的正文? 我使用的代码如下所示 请注意: 我想使用file\u ge
- 我想使用file\u get\u contents()来实现这一点,不是phpcURL、phpRequest2或elasticsearch php库
- 我想将此保留为GET请求,将其改为POST请求不是我想要的
$url = "example-elasticsearch-url-here.com/index/_search";
$body=<<<EOD
{
"_source": ["email"],
"size":10,
"query":{
"match_all" : {}
}
}
EOD;
$contextData = array (
'method' => 'GET',
'header' => "Content-Type: application/json\r\n".
'ssl'=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
'content'=> $body
);
$context = stream_context_create (array ( 'https' => $contextData ));
try {
$result = file_get_contents ($url,false,$context);
} catch (Exception $e) {
$result = false;
}
echo $result;
$url=“example elasticsearch url here.com/index/\u search”;
$body=数组(
“验证对等”=>错误,
“验证对等名称”=>false,
),
“内容”=>$body
);
$context=stream\u context\u create(数组('https'=>$contextData));
试一试{
$result=file\u get\u contents($url,false,$context);
}捕获(例外$e){
$result=false;
}
回声$结果;
如果您在$context
中使用http
而不是https
作为键名,它是否有效?不,我的elasticsearch使用的是httpsI know,但据我所知,无论使用的是http还是https,键名都需要保持在http
。谢谢!那奏效了。。我现在觉得自己很傻呵呵。。简单的修复。我很快就会接受你的回答,非常感谢!