Как правильно меня поправили товарищи ниже, чтобы увидеть ответ сервера ,в котором может содержаться более подробное сообщение об ошибке, надо в контекст, в секцию
http добавить элемент
'ignore_errors' => true,
Плюс совсем уж очевидные косяки, которые бросаются в глаза:
1. Нет такого слова - "chunck"
2. У этого запроса нет контента. И, как следствие - у него нулевая длина (и непонятно, зачем заголовок вообще).
2. Если метод POST, то логичнее отправлять данные не в строке запроса, а в теле запроса (но тогда и длину считать нормально, а не одной переменной, как сейчас).
4. Если уж посылать враскоряку - методом POST, но в строке запроса - то данные надо форматировать по стандарту, а не то что сейчас:
$url = sprintf('https://%s:8443/?%s',
$host,
http_build_query(['database'=>$db, 'query'=>$query])
);