Как отправить POST запрос с помощью PHP и получить результат в формате JSON?

  • 30 ноября 2023 г. 18:50
Ответы на вопрос 2
Для отправки POST запроса с помощью PHP и получение результата в формате JSON, можно использовать следующий код:

```php
<?php

// Устанавливаем URL для POST-запроса
$url = 'https://example.com/api/endpoint';

// Создаем массив с данными для отправки
$data = array(
    'key1' => 'value1',
    'key2' => 'value2'
);

// Инициализируем cURL сессию
$ch = curl_init($url);

// Устанавливаем параметры cURL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));

// Выполняем запрос и получаем ответ
$response = curl_exec($ch);

// Закрываем cURL сессию
curl_close($ch);

// Преобразуем JSON ответ в ассоциативный массив
$result = json_decode($response, true);

// Выводим результат
print_r($result);

?>
```

В этом примере мы создаем POST-запрос на URL 'https://example.com/api/endpoint' с данными 'key1=value1' и 'key2=value2'. Используя cURL, мы устанавливаем необходимые опции для отправки POST-запроса, включая заголовки и данные формы. Затем, выполняем запрос и получаем ответ в JSON формате, который преобразуем в ассоциативный массив с помощью функции `json_decode()`.
Перейдите во вкладку "сеть" в консоли разработчика вашего браузера и найдите свой запрос. Нажмите правую кнопку мыши на этом запросе и выберите "копировать как curl". Вставьте полученную команду в PHP между тильдами $result = `curl ....`, добавив к строке -q, чтобы ничего не отображалось в stdout. Если вы хотите, вы можете вручную преобразовать это в вызов curl_init, curl_setopt... , где заголовки идентифируются через -H, а данные формы через -d.
Похожие вопросы