wp_safe_remote_get()WP 3.6.0

Отправляет безопасный GET-запрос и получает необработанный HTTP-ответ.

Подходит для запросов к произвольным URL, например полученным от пользователя или внешнего сервиса. Проверяет исходный URL и каждый URL перенаправления через wp_http_validate_url(), защищая от SSRF-атак.

Поддерживаются только протоколы HTTP и HTTPS.

Работает на основе: _wp_http_get_object(), WP_Http::get()
Основа для: download_url()

Хуков нет.

Возвращает

Массив|WP_Error.

  • массив - данные HTTP-ответа.
  • WP_Error - при ошибке запроса или небезопасном URL.

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

wp_safe_remote_get( $url, $args );
$url(string) (обязательный)
URL запроса. Исходный адрес и все перенаправления должны пройти проверку безопасности.
$args(array)

Параметры запроса. Полный список смотрите в описании WP_Http::request().
Параметр reject_unsafe_urls всегда принудительно устанавливается в true.

По умолчанию: []

Примеры

0

#1 Получение данных из внешнего API

$response = wp_safe_remote_get(
	'https://api.example.com/products/42',
	[
		'timeout' => 10,
		'headers' => [
			'Accept' => 'application/json',
		],
	]
);

if ( is_wp_error( $response ) ) {
	return;
}

$status_code = wp_remote_retrieve_response_code( $response );

if ( 200 !== $status_code ) {
	return;
}

$data = json_decode( wp_remote_retrieve_body( $response ), true );

Заметки

Список изменений

С версии 3.6.0 Введена.

Код wp_safe_remote_get() WP 7.0.3

function wp_safe_remote_get( $url, $args = array() ) {
	$args['reject_unsafe_urls'] = true;
	$http                       = _wp_http_get_object();
	return $http->get( $url, $args );
}