Извлечение файлов cookie с помощью wp_remote_retrieve_cookies()

# WP_REMOTE_RETRIEVE_COOKIES() │ WP 4.4.0

Функция wp_remote_retrieve_cookies() позволяет извлечь файлы cookie из ответа сервера. Эта информация может быть полезна для работы с удалёнными запросами в WordPress.

## Что возвращает функция

Функция вернет массив объектов WP_Http_Cookie, полученных в ответе на запрос. Если файлов cookie нет, или произошла ошибка (например, если ответ - это ошибка WP_Error), будет возвращён пустой массив.

### Возвращаемое значение

- WP_Http_Cookie[] – массив объектов файлов cookie.
- Пустой массив, если cookie отсутствуют или произошла ошибка.

## Как использовать

Функция используется следующим образом:

```php
$response = wp_remote_retrieve_cookies( $response );
  • $response (array|WP_Error) – обязательный параметр, который представляет ответ HTTP.

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

Пример 1: Получение всех удалённых файлов cookie

Допустим, мы отправляем запрос, и в ответе содержатся файлы cookie. Мы можем получить всю информацию о файлах cookie в этом ответе.

Для демонстрации мы будем использовать сервис httpbin.org, который позволяет устанавливать cookies в ответе от сервера.

$url = 'https://httpbin.org/cookies/set';

// добавим запрос, чтобы вернуть cookie в ответе
$url .= '?mycookie=value1&mycook=value2';

$response = wp_remote_get( $url );

print_r( wp_remote_retrieve_cookies($response) );

После выполнения этого кода мы получим следующий вывод:

Array
(
    [0] => WP_Http_Cookie Object
        (
            [name] => mycookie
            [value] => value1
            [expires] => 
            [path] => /
            [domain] => httpbin.org
        )

    [1] => WP_Http_Cookie Object
        (
            [name] => mycook
            [value] => value2
            [expires] => 
            [path] => /
            [domain] => httpbin.org
        )

)

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

  • С версии 4.4.0 – функция была введена в WordPress.

Как работает функция

Вот упрощённый код функции:

function wp_remote_retrieve_cookies( $response ) {
    if ( is_wp_error( $response ) || empty( $response['cookies'] ) ) {
        return array();
    }

    return $response['cookies'];
}

Эта функция проверяет, есть ли ошибка в ответе или если массив cookies пуст. Если да, то она возвращает пустой массив. Если ошибок нет, возвращает массив файлов cookie.

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

  • 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_header()
  • wp_remote_retrieve_headers()
  • wp_remote_retrieve_response_code()
  • wp_remote_retrieve_response_message()
  • wp_safe_remote_request()

Leave a Reply

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