WP_SAFE_REMOTE_REQUEST() Function: Secure HTTP Requests in WordPress

WP_SAFE_REMOTE_REQUEST() │ WP 3.6.0

Функция WP_SAFE_REMOTE_REQUEST() позволяет получить ответ от безопасного HTTP-запроса.

Эта функция особенно полезна, когда вы отправляете запрос на произвольный URL. Она проверяет, что указанный URL и все адреса, на которые он перенаправляет, безопасны, чтобы избежать атак на сервер через подделку запросов (так называемый SSRF — Server Side Request Forgery).

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

Функция wp_safe_remote_request() принимает два параметра:

$res = wp_safe_remote_request( $url, $args );
  • $url (string) (обязательный) — URL, с которого вы хотите получить данные.
  • $args (array) — аргументы запроса. См. WP_Http::request() для деталей о принимаемых аргументах. По умолчанию — пустой массив.

Возвра��

Функция возвращает либо массив с ответом, либо объект WP_Error в случае ошибки. Для получения дополнительной информации о возвращаемом значении см. WP_Http::request().

Пример использования

Пример 1: Получение данных сервера по URL

Допустим, мы хотим получить страницу http://wordpress.org, но сначала нам нужно проверить, вернул ли сервер код состояния 200 (ОК):

$res = wp_safe_remote_request('http://wordpress.org');
print_r( $res );

В результате мы получаем:

Array (
    [headers] => Array
        (
            [server] => nginx
            [date] => Sun, 02 Nov 2014 21:01:46 GMT
            [content-type] => text/html; charset=utf-8
            [connection] => close
            [vary] => Accept-Encoding
            [x-frame-options] => SAMEORIGIN
        )

    [body] => 

...
    [response] => Array
        (
             => 200
            [message] => OK
        )

    [cookies] => Array
        (
        )

    [filename] => 
)

Примечания

  • Для получения дополнительной информации о формате массива ответа, смотрите wp_remote_request().
  • Для информации о стандартных параметрах смотрите WP_Http::request().
  • Для более подробной информации о проверке URL смотрите wp_http_validate_url().

История изменений

  • Версия 3.6.0 — функция была введена.

Код функции

Вот как реализована функция wp_safe_remote_request внутри кода WordPress:


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

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

WordPress предоставляет несколько связанных функций для работы с HTTP-запросами:

  • status_header()
  • wp_get_http_headers()
  • wp_http_validate_url()
  • wp_remote_get()
  • wp_remote_head()
  • wp_remote_post()
  • wp_remote_request()
  • wp_remote_retrieve_body()
  • wp_remote_retrieve_cookie()
  • wp_remote_retrieve_cookie_value()
  • wp_remote_retrieve_cookies()
  • wp_remote_retrieve_header()
  • wp_remote_retrieve_headers()
  • wp_remote_retrieve_response_code()
  • wp_remote_retrieve_response_message()

Эти функции помогут вам более эффективно работать с HTTP-запросами в WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *