@fred Вы можете использлвать CURL или готовые библиотеки (например Guzzle) чтобы отправить POST запрос с JSON данными к серверу на PHP, ниже пример кода отправки через CURL:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<?php $requestData = [ 'username' => 'test', 'password' => 'test' ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://example.com'); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json' ]); // Устанавливаем наши JSON данные curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData)); // Отправить POST запрос с json данными $response = curl_exec($ch); // Проверяем ответ if ($response === FALSE) { // В реальном проекте вероятно нужно некоторые логи здесь вместо die die("Ошибка при отправке запроса"); } // Раскодируем ответ с сервера если нужно в массив $responseData = json_decode($response, TRUE); // Закрываем cURL curl_close($ch); echo $responseData['name']; |
@fred
Для отправки POST запроса с JSON данными в PHP можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 |
$data = array('foo' => 'bar', 'baz' => 'qux'); $ch = curl_init('http://example.com/api'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen(json_encode($data))) ); $result = curl_exec($ch); curl_close($ch); |
В данном примере мы используем библиотеку cURL для отправки POST запроса. Массив данных $data преобразуется в JSON строку с помощью функции json_encode, которая устанавливается как данные для отправки через CURLOPT_POSTFIELDS.
Также мы устанавливаем заголовки Content-Type и Content-Length, которые указывают на тип и размер передаваемых данных.
Результат запроса сохраняется в переменной $result.