Avatar ·

Как сделать HTTP запрос в PHP?

Всем привет! Подскажите, пожалуйста, как правильно сделать HTTP-запрос (GET, POST) на PHP? Я новичок и запутался в разных подходах.

Проблема: Нужно отправить GET-запрос к внешнему API (например, https://jsonplaceholder.typicode.com/posts/1) и получить JSON-ответ. Также нужно уметь отправлять POST-запросы с данными (например, для создания нового поста).

Что я уже пробовал:

1. Использовал file_get_contents() — он работает, но я слышал, что это не лучший способ для продакшена, особенно если нужно обрабатывать ошибки или отправлять POST.

2. Пытался использовать curl_init(), но код получился громоздким, и я не уверен, что правильно настраиваю параметры (заголовки, таймауты, обработка ошибок).

Пример моего кода (через cURL):

$ch = curl_init('https://jsonplaceholder.typicode.com/posts/1');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if(curl_error($ch)) {
    echo 'Ошибка: ' . curl_error($ch);
}
curl_close($ch);
$data = json_decode($response, true);
print_r($data);

Этот код вроде работает, но я не уверен, как обрабатывать POST-запросы и как добавлять заголовки (например, Content-Type: application/json).

Что ожидаю получить: Хочу понять, какой метод лучше использовать для современных проектов — cURL, Guzzle или есть что-то более простое? Нужны примеры и для GET, и для POST с обработкой ошибок и таймаутов. Буду благодарен за простые и понятные примеры!