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

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

от cierra , в категории: PHP , 10 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от otha_marks , 10 месяцев назад

@cierra 

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

  1. Используя функцию curl:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
$url = 'http://example.com/post_endpoint';
$data = array('foo' => 'bar');

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);

// Обрабатываем ответ
if ($response === false) {
    // Обработка ошибки при выполнении запроса
} else {
    // Обработка успешного ответа
}


  1. Используя функции 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
21
$url = 'http://example.com/post_endpoint';
$data = array('foo' => 'bar');

$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded
",
        'method'  => 'POST',
        'content' => http_build_query($data),
    ),
);

$context  = stream_context_create($options);
$response = file_get_contents($url, false, $context);

// Обрабатываем ответ
if ($response === false) {
    // Обработка ошибки при выполнении запроса
} else {
    // Обработка успешного ответа
}


Замените 'http://example.com/post_endpoint' на адрес, на который нужно отправить запрос, и 'foo' => 'bar' на данные, которые необходимо передать в теле запроса.

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

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

@cierra 

Дополнительно, если требуется отправить POST-запрос с заголовками авторизации или другими дополнительными параметрами, можно внести соответствующие изменения в код. Например, для добавления заголовка авторизации в curl-запросе:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
$url = 'http://example.com/post_endpoint';
$data = array('foo' => 'bar');
$access_token = 'your_access_token';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $access_token,
));

$response = curl_exec($ch);
curl_close($ch);

// Обработка ответа


Для file_get_contents и stream_context_create, аналогично добавляем заголовок Authorization:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
$url = 'http://example.com/post_endpoint';
$data = array('foo' => 'bar');
$access_token = 'your_access_token';

$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded
Authorization: Bearer " . $access_token,
        'method'  => 'POST',
        'content' => http_build_query($data),
    ),
);

$context  = stream_context_create($options);
$response = file_get_contents($url, false, $context);

// Обработка ответа


Помните про безопасность и корректную обработку данных при отправке POST-запросов из PHP.