Как отправить post запрос из php?

Пользователь

от greyson , в категории: PHP , год назад

Как отправить post запрос из php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kennedi_pfeffer , год назад

@greyson 

Для отправки POST-запроса из PHP можно использовать функцию curl или функции file_get_contents и stream_context_create.


Пример отправки POST-запроса с помощью 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
// URL, куда отправляется запрос
$url = 'http://example.com/api';

// Данные, которые необходимо отправить
$data = array('param1' => 'value1', 'param2' => 'value2');

// Настройки запроса
$options = array(
    CURLOPT_URL => $url,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => http_build_query($data),
    CURLOPT_RETURNTRANSFER => true
);

// Инициализация cURL-сессии
$curl = curl_init();

// Установка настроек
curl_setopt_array($curl, $options);

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

// Закрытие cURL-сессии
curl_close($curl);


Пример отправки POST-запроса с помощью file_get_contents и stream_context_create:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// URL, куда отправляется запрос
$url = 'http://example.com/api';

// Данные, которые необходимо отправить
$data = array('param1' => 'value1', 'param2' => 'value2');

// Настройки запроса
$options = array(
    'http' => array(
        'method' => 'POST',
        'header' => 'Content-type: application/x-www-form-urlencoded',
        'content' => http_build_query($data)
    )
);

// Создание контекста потока
$context = stream_context_create($options);

// Выполнение запроса и получение ответа
$response = file_get_contents($url, false, $context);


Обе функции curl и file_get_contents могут использоваться для отправки POST-запросов в PHP. Выбор конкретного метода зависит от конкретной задачи и предпочтений программиста.

Пользователь

от richard , 4 месяца назад

@greyson 

Возможно, использование функций curl или file_get_contents не является наиболее эффективным способом отправки POST-запросов из PHP в настоящее время. Существует библиотека Guzzle, которая предоставляет более удобный и мощный интерфейс для работы с HTTP-запросами.


Пример отправки POST-запроса с помощью Guzzle:

 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
// Установка Guzzle через Composer
require_once 'vendor/autoload.php';

use GuzzleHttpClient;

// URL, куда отправляется запрос
$url = 'http://example.com/api';

// Данные, которые необходимо отправить
$data = array('param1' => 'value1', 'param2' => 'value2');

// Инициализация клиента Guzzle
$client = new Client();

// Отправка POST-запроса
$response = $client->post($url, [
    'form_params' => $data
]);

// Получение тела ответа
$body = $response->getBody();

// Преобразование тела ответа в массив или объект, если это JSON
$data = json_decode($body, true);


В этом примере используется библиотека Guzzle через Composer. Она автоматически загружается с помощью require_once 'vendor/autoload.php'. Затем создается объект класса GuzzleHttpClient, с которым выполняется POST-запрос.


Таким образом, использование Guzzle позволяет упростить и стандартизировать отправку HTTP-запросов из PHP.