WordPress как на ладони
wordpress jino

wp_remote_post() WP 2.7.0

Обертка для использования curl. Получает удаленную страницу используя HTTP POST метод. Результат содержит HTTP заголовки и данные самой станицы, и возвращается в виде массива.

В запрос можно передать данные cookies: передаются они как массив объектов WP_Http_Cookie.

Для HTTP GET метода используйте wp_remote_get().

Используется в: wp_check_browser_version().
Работает на основе: _wp_http_get_object()

Хуков нет.

Возвращает

array/WP_Error. Массив или WP_Error объект. Результат будет содержать заголовки ответа headers:

Array
(
	[headers] => Array
		(
			[date] => Thu, 30 Sep 2010 15:16:36 GMT
			[server] => Apache
			[x-powered-by] => PHP/5.3.3
			[x-server] => 10.90.6.243
			[expires] => Thu, 30 Sep 2010 03:16:36 GMT
			[cache-control] => Array
				(
					[0] => no-store, no-cache, must-revalidate
					[1] => post-check=0, pre-check=0
				)

			[vary] => Accept-Encoding
			[content-length] => 1641
			[connection] => close
			[content-type] => application/php
		)
	[body] => <html>Это HTML код страницы сайта!</html>
	[response] => Array
		(
			[code] => 200
			[message] => OK
		)

	[cookies] => Array
		(
		)

)

Использование

wp_remote_post( $url, $args );

Шаблон использования

wp_remote_post( $url, array(
	'method'      => 'POST',
	'timeout'     => 5,
	'redirection' => 5,
	'httpversion' => '1.0',
	'blocking'    => true,
	'headers'     => array(),
	'body'        => null, // параметры запроса в массиве
	'cookies'     => array()
) );
$url(строка) (обязательный)
URL запроса.
$args(массив)

Аргументы запроса, в виде массива. Могут быть:

  • body - массив параметров запроса, где ключ это название параметра и значение это значение параметра: array('foo'=>'val', 'bar'=>'val')

  • method - HTTP метод, например: POST, GET, HEAD, PUT DELETE.

  • timeout - время в секундах на получение данных. Время можно изменить в плагине через фильтр "http_request_timeout".

  • redirection - число, сколько раз переходить по редиректам, если они есть.
    Значение можно изменить в плагине через фильтр "http_request_redirection_count".

  • user-agent - позволяет установить user-agent. По умолчанию "WordPress/4.0; http://www.example.com", где 4.0 - текущая версия WP, а http://www.example.com - адрес сайта. Значение можно изменить через фильтр "http_headers_useragent".

  • blocking - позволяет выполнять не блокирующие запросы. По умолчанию true. Если установить в false, то это позволит PHP продолжать работу, пока запрос обрабатывается. Полезно это, когда вам нужно просто отправить запрос и не важно был ли он обработан и что он вернул. (имейте ввиду, что не все серверы поддерживают эту функцию и даже установив этот параметр в false, блокировка все равно будет. Альтернатива: установить timeout в 1 секунду, но делать это не рекомендуется, т.к. запрос может быть не послан вообще).

  • compress - позволяет отправлять тело запроса (body) в сжатом виде.

  • decompress - по умолчанию true. Отвечает за параметр accept-encoding. Если установить в false, то в серверу в заголовках будет сказано, что принимаются сжатые данные и при получении сжатые данные тела (body) будут распакованы.

  • sslverify - логический. true - будет проверять SSL сертификат (подпись, актуальность к сайту) и прервет запрос, если проверка не будет пройдена. Если вы запрашиваете https и знаете что проверка может быть не пройдена, но сайту можно доверять, то уберите проверку сертификата - поставьте в этом параметре false.

По умолчанию: предустановки

Полный список параметров смотрите в описании функции wp_remote_request()

Примеры

#1 Отправит post данные на удаленный УРЛ

Допустим нам нужно отправить запрос на УРЛ http://site.ru/profile. POST данные нужно отправлять в параметре body:

$url = 'http://site.ru/profile';
$args = array(
	'method' => 'POST',
	'timeout' => 45,
	'redirection' => 5,
	'httpversion' => '1.0',
	'blocking' => true,
	'headers' => array(),
	'body' => array( 'username' => 'bob', 'password' => '1234xyz' ),
	'cookies' => array()
);
$response = wp_remote_post( $url, $args );

// проверка ошибки
if ( is_wp_error( $response ) ) {
   $error_message = $response->get_error_message();
   echo "Что-то пошло не так: $error_message";
} else {
   echo 'Ответ: <pre>';
   print_r( $response );
   echo '</pre>';
}

В этом примере $response['body'] будет содержать html код страницы, полученной в результате запроса.

Код wp remote post: wp-includes/http.php WP 4.8.2

<?php
function wp_remote_post($url, $args = array()) {
	$http = _wp_http_get_object();
	return $http->post( $url, $args );
}

Cвязанные функции

Из метки: HTTP API (curl remote)

Ssl сертификаты цены

ssl сертификаты цены

vpshoster.ru

wp_remote_post Комментариев нет

Здравствуйте, !

Ваш комментарий