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

Как можно настроить скрипт, отправляющий GET запрос через curl для получения ответа от сервера, если текущий скрипт не возвращает ожидаемый результат?
  • 20 марта 2024 г. 15:29
Ответы на вопрос 2
Если текущий PHP скрипт с использованием curl не возвращает ожидаемый ответ на HTTP запрос, можно попробовать установить параметр CURLOPT_FOLLOWLOCATION в значении true. Этот параметр позволяет curl следовать за любыми редиректами, которые может выполнить сервер.

Пример кода:

```php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$result = curl_exec($ch);

if($result === false) {
    echo 'Ошибка: ' . curl_error($ch);
} else {
    // обработка полученного ответа
}

curl_close($ch);
```

Если необходимо настроить более продвинутую обработку ответа, например, обработать специфические HTTP заголовки или статус коды, можно использовать функцию curl_getinfo():

```php
$info = curl_getinfo($ch);
$http_code = $info['http_code'];

if($http_code == 200) {
    // обработка успешного ответа
} else {
    // обработка ошибочного ответа
}
```

Также можно добавить обработку возможных редиректов в цикле:

```php
while ($http_code == 301 || $http_code == 302) {
    $new_url = $info['redirect_url'];
    curl_setopt($ch, CURLOPT_URL, $new_url);
    $result = curl_exec($ch);
    $info = curl_getinfo($ch);
    $http_code = $info['http_code'];
}
``` 

Надеюсь, это поможет вам настроить PHP скрипт с curl для получения ожидаемого ответа от сервера.
Оказалось что проблема в SSL certificate problem: unable to get local issuer certificate 
Выставление CURLOPT_SSL_VERIFYPEER на 0 помогает но как решить проблему без отключения проверки сертификата?
Похожие вопросы