Drupal → Как отправить POST запрос

24.01.2011

Drupal 8

$request = \Drupal::httpClient()->post('http://example.com', NULL, array(
  'param1' => 'value1',
  'param2' => 'value2',
));
try {
  $response = $request->send();
}
catch (\Guzzle\Http\Exception\RequestException $exception) {
  // ...
}

Подробнее.

Drupal 7

$result = drupal_http_request('http://example.com', array(
  'method' => 'POST',
  'headers' => array(
    'Content-Type' => 'application/x-www-form-urlencoded',
  ),
  'data' => drupal_http_build_query(array(
    'param1' => 'value1',
    'param2' => 'value2',
  )),
));

Подробнее.

Drupal 6

$result = drupal_http_request(
  'http://example.com',
  array('Content-Type' => 'application/x-www-form-urlencoded'),
  'POST',
  'param1=value1&param2=value2'
);

Подробнее.

Написанное актуально для
Drupal 6, Drupal 7, Drupal 8
Похожие записи

Комментарии

Вот это ОЧЕНЬ круто! То что надо. Спасибо.

Гость
12.01.2014, 00:03

Ай, спасиба, дарагой! Второй сутки по инету шарюсь, всё не то да не так, через редиректы всякие и $form['#method']. А, оказывается, вот как ещё можно!

Дмитрий
13.01.2014, 15:04

А как отправлять файл с помощью drupal_http_request?
Нужно для загрузки видео на YouTube.

Andrey Strelkov
24.12.2014, 17:18

Пожалуйста... напишите аналогично - как получить POST запрос :'(

Гость
05.05.2015, 13:22

Присоединяюсь к Andrey Strelkov, напишите пожалуйста, как получить и обработать post-запрос

Вдруг если кому-то понадобиться сделать POST-запрос из формы.
Практикуется при работе с платежными системами.

function _test_payment_form() {
$form = array();

$form['user'] = array(
'#type' => 'hidden',
'#name-info' => 'user', // this is the field name that will become name attribute of the input tag. No need to use this if your $form['KEY'] is same as this one.
);

$form['submit'] = array(
'#type' => 'submit',
'#value' => t('Proceed to @server for the payment', array('@server' => 'Paypal')),
);

$form['#action'] = 'http://example-payment-server.com/example/2/3/4'; // Information will now be submitted to this URL other than Drupal.
$form['#method'] = 'POST'; // Just for clarification. This is the default value.

return $form;
}

Василий
14.01.2017, 21:24

Barcaman, а разве форма по умолчанию не отправляет POST?

Василий, так там так и написано

// Just for clarification. This is the default value.

Василий
14.01.2017, 22:59

Fluffy, я имею ввиду, что и без параметра $form['#method'], форма будет отправлять POST

Добавить комментарий