@danilapon

Не получаю ответ на HTTP запрос запущенный в php скрипте через curl но получаю ответ в браузере, как исправить?

Доброго времени суток! Перед полноценной работой с основным скриптом пытаюсь протестировать обработку входящих GET и POST запросов, для проверки GET использую простой вывод целевого параметра subid:
<?php
echo $_GET['subid'];


При обращении использую URL: https://{сервер}/?subid=42 и открывая данный адрес в браузере получаю вывод 42, все хорошо. Но к скрипту будет обращаться не браузер а php скрипт с другого веб-сервиса который посылает хук на мой эндпоинт. Запросы реализуются через curl и пример подобного GET запроса выглядит так:
<?php
$get = [
	'subid'  => '42'
];
 
$ch = curl_init('https://{сервер}?' . http_build_query($get));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$out = curl_exec($ch);
curl_close($ch);
 
echo $out;


В результате приходит код 0, что по сути и не код а просто отсутствие ответа. При этом этот же скрипт проверен на другой ссылке, например публичный API (https://catfact.ninja/fact) который возвращает код 200 и JSON строку. Получается ситуация что один и тот же адрес в браузере отдает ответ а в php скрипте нет. Сам сервер на Apache, дефолтные настройки, .htaccess отсутствует на данный момент, так что пока не вижу что могло бы ограничивать работу с запросом.

Подскажите пожалуйста как можно добиться ответа на запрос из скрипта в данном случае? IDE для написания обоих скриптов PhpStorm.
  • Вопрос задан
  • 537 просмотров
Пригласить эксперта
Ответы на вопрос 1
@danilapon Автор вопроса
Оказалось что проблема в SSL certificate problem: unable to get local issuer certificate
Выставление CURLOPT_SSL_VERIFYPEER на 0 помогает но как решить проблему без отключения проверки сертификата?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы