wp_safe_remote_get()
Отправляет безопасный 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.По умолчанию:
[]
Примеры
#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 );
Заметки
- Смотрите: wp_remote_request() For more information on the response array format.
- Смотрите: WP_Http::request() For default arguments information.
- Смотрите: wp_http_validate_url() For more information about how the URL is validated.
Список изменений
| С версии 3.6.0 | Введена. |
Код wp_safe_remote_get() 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 );
}