wp_remote_get

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

Для HTTP POST метода, используйте аналогичную функцию: wp_remote_post().

Читайте подробную статью про HTTP API.

Хуков нет.

Возвращает

WP_Error/массив: результат ответа; WP_Error в случае ошибки.

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

wp_remote_get( $url, $args );

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

$remote_get = wp_remote_get( $url, array(
	'timeout'     => 5,
	'redirection' => 5,
	'httpversion' => '1.0',
	'user-agent'  => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' ),
	'blocking'    => true,
	'headers'     => array(),
	'cookies'     => array(),
	'body'        => null,
	'compress'    => false,
	'decompress'  => true,
	'sslverify'   => true,
	'stream'      => false,
	'filename'    => null
) );
$url(cтрока) (обязательный)
УРЛ страницы, которую нужно получить.
$args(массив)

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

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

  • 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.

По умолчанию: array()

Примеры

#1 Получим внешнюю страницу

$result = wp_remote_get( 'http://www.example.com/index.html' );

/* $result будет содержать:
Array
(
	[headers] => Array
		(
			[accept-ranges] => bytes
			[cache-control] => max-age=604800
			[content-type] => text/html
			[date] => Fri, 24 Oct 2014 13:07:13 GMT
			[etag] => "359670651"
			[expires] => Fri, 31 Oct 2014 13:07:13 GMT
			[last-modified] => Fri, 09 Aug 2013 23:54:35 GMT
			[server] => ECS (ewr/144C)
			[x-cache] => HIT
			[x-ec-custom-error] => 1
			[content-length] => 1270
			[connection] => close
		)

	[body] => <!doctype html> ...
	[response] => Array
		(
			[code] => 200
			[message] => OK
		)

	[cookies] => Array
		(
		)

	[filename] => 
)
*/

#2 Установим параметры при получении удаленной страницы

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

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *