- Описание функции
- Примеры использования
- Выполнение GET-запроса к удаленному серверу
- Получение данных с удаленного сервера
- Проверка доступности удаленного ресурса
- Извлечение заголовков ответа
- Установка пользовательского User-Agent
- Установка времени ожидания ответа
- Вопросы и ответы
- Как отправить GET-запрос с помощью функции wp_remote_get()?
- Как обработать ошибку при использовании функции wp_remote_get()?
- Как установить таймаут для запроса с помощью функции wp_remote_get()?
- Как обработать редиректы при использовании функции wp_remote_get()?
- Как указать версию протокола HTTP при использовании функции wp_remote_get()?
- Как указать пользовательский User-Agent при использовании функции wp_remote_get()?
- Как передать заголовки в запросе с помощью функции wp_remote_get()?
- Как отправить cookies в запросе с помощью функции wp_remote_get()?
- Как отправить тело запроса с помощью функции wp_remote_get()?
- Связанные элементы
Описание функции
Функция wp_remote_get() выполняет HTTP-запрос с использованием метода GET и возвращает его ответ.
Функция предоставляет простой способ выполнить GET-запрос к удаленному серверу и получить ответ. Она может использоваться для получения данных с удаленного сервера, например, для получения содержимого веб-страницы или API.
Использование
wp_remote_get( string $url, array $args = array() ): array|WP_Error Функция wp_remote_get() принимает два параметра: $url (обязательный) и $args (необязательный). Она возвращает массив с ответом или объект WP_Error в случае ошибки.
Параметр $url — это URL-адрес, который нужно получить.
Параметр $args — это массив с дополнительными аргументами запроса. Он содержит информацию о методе запроса, таймауте, заголовках, теле запроса и других параметрах.
$url(string) — Обязательный. URL-адрес для получения.$args(array) — Необязательный. Дополнительные аргументы запроса. См. WP_Http::request() для информации о принимаемых аргументах.
Дополнительные параметры из WP_Http::request( … $args ):
method(string) — Метод запроса. Принимает ‘GET’, ‘POST’, ‘HEAD’, ‘PUT’, ‘DELETE’, ‘TRACE’, ‘OPTIONS’ или ‘PATCH’. Некоторые транспорты технически позволяют другие методы, но их не следует использовать. По умолчанию ‘GET’.timeout(float) — Продолжительность открытого соединения в секундах. По умолчанию 5.redirection(int) — Количество разрешенных перенаправлений. Не поддерживается всеми транспортами. По умолчанию 5.httpversion(string) — Версия протокола HTTP для использования. Принимает ‘1.0’ и ‘1.1’. По умолчанию ‘1.0’.user-agent(string) — Значение User-agent, отправляемое. По умолчанию ‘WordPress/’ . get_bloginfo( ‘version’ ) . ‘; ‘ . get_bloginfo( ‘url’ ).reject_unsafe_urls(bool) — Пропускать ли URL-адреса через wp_http_validate_url(). По умолчанию false.blocking(bool) — Требуется ли вызывающему коду результат запроса. Если установлено значение false, запрос будет отправлен на удаленный сервер, и обработка будет возвращена вызывающему коду немедленно. Вызывающий код будет знать, успешно ли выполнен запрос или произошла ошибка, но не получит ответа от удаленного сервера. По умолчанию true.headers(string|array) — Массив или строка заголовков, отправляемых с запросом.cookies(array) — Массив куки, отправляемых с запросом.body(string|array) — Тело запроса, отправляемое с запросом. По умолчанию null.compress(bool) — Сжимать ли тело запроса при отправке запроса. По умолчанию false.decompress(bool) — Разжимать ли сжатый ответ. Если установлено значение false и сжатое содержимое возвращается в ответе, оно должно быть отдельно разжато. По умолчанию true.sslverify(bool) — Проверять ли SSL для запроса. По умолчанию true.sslcertificates(string) — Абсолютный путь к файлу SSL-сертификата .crt. По умолчанию ABSPATH . WPINC . ‘/certificates/ca-bundle.crt’.stream(bool) — Потоковая передача в файл. Если установлено значение true и не указано имя файла, он будет помещен во временную директорию WP, а его имя будет установлено с использованием базового имени URL. По умолчанию false.filename(string) — Имя файла для записи при потоковой передаче.$streamдолжно быть установлено в true. По умолчанию null.limit_response_size(int) — Размер ответа в байтах. По умолчанию null.
Функция возвращает массив с ответом или объект WP_Error в случае ошибки.
<?php
$url = 'https://example.com/api/data';
$args = array(
'timeout' => 10,
'headers' => array(
'Authorization' => 'Bearer ' . $access_token,
'Content-Type' => 'application/json',
),
);
$response = wp_remote_get( $url, $args );
if ( ! is_wp_error( $response ) && wp_remote_retrieve_response_code( $response ) === 200 ) {
$data = wp_remote_retrieve_body( $response );
// Обработка полученных данных
} else {
$error_message = is_wp_error( $response ) ? $response->get_error_message() : 'Request failed';
// Обработка ошибки
}
?> В этом примере мы выполняем GET-запрос к API по адресу https://example.com/api/data. Мы устанавливаем таймаут запроса в 10 секунд и добавляем заголовки авторизации и типа контента. Затем мы проверяем, успешно ли выполнен запрос, и обрабатываем полученные данные или ошибку соответственно.
Примеры использования
Выполнение GET-запроса к удаленному серверу
$url = 'https://api.example.com/data';
$response = wp_remote_get( $url );
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Ошибка при выполнении запроса: " . $error_message;
} else {
$response_code = wp_remote_retrieve_response_code( $response );
$response_body = wp_remote_retrieve_body( $response );
echo "Код ответа: " . $response_code . "<br>";
echo "Тело ответа: " . $response_body;
}
Получение данных с удаленного сервера
$url = 'https://api.example.com/data';
$response = wp_remote_get( $url );
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Ошибка при выполнении запроса: " . $error_message;
} else {
$data = wp_remote_retrieve_body( $response );
$decoded_data = json_decode( $data, true );
if ( $decoded_data ) {
echo "Полученные данные: ";
print_r( $decoded_data );
} else {
echo "Ошибка при декодировании данных.";
}
}
Проверка доступности удаленного ресурса
$url = 'https://api.example.com';
$response = wp_remote_get( $url );
if ( is_wp_error( $response ) ) {
echo "Сервер недоступен.";
} else {
echo "Сервер доступен.";
}
Извлечение заголовков ответа
$url = 'https://api.example.com';
$response = wp_remote_get( $url );
if ( is_wp_error( $response ) ) {
echo "Ошибка при выполнении запроса.";
} else {
$headers = wp_remote_retrieve_headers( $response );
echo "Заголовки ответа: ";
print_r( $headers );
}
Установка пользовательского User-Agent
$url = 'https://api.example.com';
$args = array(
'user-agent' => 'My Custom User Agent',
);
$response = wp_remote_get( $url, $args );
if ( is_wp_error( $response ) ) {
echo "Ошибка при выполнении запроса.";
} else {
$response_code = wp_remote_retrieve_response_code( $response );
echo "Код ответа: " . $response_code;
}
Установка времени ожидания ответа
$url = 'https://api.example.com';
$args = array(
'timeout' => 10,
);
$response = wp_remote_get( $url, $args );
if ( is_wp_error( $response ) ) {
echo "Ошибка при выполнении запроса.";
} else {
$response_code = wp_remote_retrieve_response_code( $response );
echo "Код ответа: " . $response_code;
}
Вопросы и ответы
Как отправить GET-запрос с помощью функции wp_remote_get()?
Для отправки GET-запроса с использованием функции wp_remote_get() необходимо передать URL в качестве обязательного параметра. Также можно указать дополнительные аргументы запроса.
$url = 'https://example.com/api/data';
$response = wp_remote_get( $url );
if ( ! is_wp_error( $response ) ) {
$body = wp_remote_retrieve_body( $response );
// Обработка полученных данных
} else {
$error_message = $response->get_error_message();
// Обработка ошибки
}
Как обработать ошибку при использовании функции wp_remote_get()?
При использовании функции wp_remote_get() возможны ошибки, которые могут быть обработаны с помощью условной конструкции. Если запрос завершается успешно, то возвращается массив с данными ответа. В случае ошибки, возвращается объект WP_Error.
$response = wp_remote_get( $url );
if ( ! is_wp_error( $response ) ) {
$body = wp_remote_retrieve_body( $response );
// Обработка полученных данных
} else {
$error_message = $response->get_error_message();
// Обработка ошибки
}
Как установить таймаут для запроса с помощью функции wp_remote_get()?
Для установки таймаута запроса с помощью функции wp_remote_get() можно использовать аргумент ‘timeout’. Значение указывается в секундах.
$args = array(
'timeout' => 10,
);
$response = wp_remote_get( $url, $args );
if ( ! is_wp_error( $response ) ) {
$body = wp_remote_retrieve_body( $response );
// Обработка полученных данных
} else {
$error_message = $response->get_error_message();
// Обработка ошибки
}
Как обработать редиректы при использовании функции wp_remote_get()?
Функция wp_remote_get() автоматически обрабатывает редиректы при выполнении HTTP-запроса. Это означает, что если запрошенный URL перенаправляет на другую страницу, функция будет автоматически следовать за редиректом и вернет ответ с конечной страницей.
$response = wp_remote_get( 'http://example.com' );
if ( ! is_wp_error( $response ) ) {
$response_code = wp_remote_retrieve_response_code( $response );
if ( 200 === $response_code ) {
// Редиректы обработаны успешно
$body = wp_remote_retrieve_body( $response );
// Дальнейшая обработка ответа
} else {
// Обработка ошибки
}
} else {
// Обработка ошибки
}
Как указать версию протокола HTTP при использовании функции wp_remote_get()?
По умолчанию функция wp_remote_get() использует версию протокола HTTP 1.0. Вы можете указать версию протокола HTTP 1.1, если это необходимо.
$args = array(
'httpversion' => '1.1',
);
$response = wp_remote_get( 'http://example.com', $args );
Как указать пользовательский User-Agent при использовании функции wp_remote_get()?
Вы можете указать пользовательский User-Agent при выполнении HTTP-запроса с помощью функции wp_remote_get(). User-Agent — это строка, которую сервер веб-сайта видит в заголовке запроса и может использовать для определения типа клиента, который делает запрос.
$args = array(
'user-agent' => 'My Custom User Agent',
);
$response = wp_remote_get( 'http://example.com', $args );
Как передать заголовки в запросе с помощью функции wp_remote_get()?
Функция wp_remote_get() позволяет отправить HTTP-запрос методом GET и получить ответ. Для передачи заголовков в запросе можно использовать параметр headers. Этот параметр может быть строкой или массивом заголовков.
Пример использования:
$response = wp_remote_get( 'https://example.com', array(
'headers' => array(
'Authorization' => 'Bearer token',
'Content-Type' => 'application/json',
),
) );
В данном примере мы отправляем GET-запрос на https://example.com и передаем два заголовка: Authorization и Content-Type.
Как отправить cookies в запросе с помощью функции wp_remote_get()?
Для отправки cookies в запросе с помощью функции wp_remote_get() можно использовать параметр cookies. Этот параметр должен быть массивом cookies.
Пример использования:
$response = wp_remote_get( 'https://example.com', array(
'cookies' => array(
'cookie_name' => 'cookie_value',
),
) );
В данном примере мы отправляем GET-запрос на https://example.com и передаем одну cookie с именем cookie_name и значением cookie_value.
Как отправить тело запроса с помощью функции wp_remote_get()?
Функция wp_remote_get() предназначена для отправки GET-запросов, поэтому не предусматривает отправку тела запроса. Если вам необходимо отправить тело запроса, рекомендуется использовать функцию wp_remote_post().
Функция
wp_remote_get()позволяет выполнить HTTP-запрос методом GET и получить ответ. С помощью параметровheadersиcookiesможно передать заголовки и cookies в запросе соответственно. Функция не предусматривает отправку тела запроса. Для этого рекомендуется использовать функциюwp_remote_post().
Связанные элементы
- Функция
wp_remote_post(): Performs an HTTP request using the POST method and returns its response. - Функция
wp_remote_head(): Performs an HTTP request using the HEAD method and returns its response. - Функция
wp_remote_request(): Performs an HTTP request and returns its response. - Хук
http_api_debug: Fires after an HTTP API response is received and allows debugging information to be logged. - Хук
http_response: Fires after an HTTP API response is received. - Хук
http_request_args: Filters the arguments for an HTTP request. - Класс
WP_Http: Provides an API for making HTTP requests. - Класс
WP_Http_Cookie: Represents an HTTP cookie. - Класс
WP_Http_Encoding: Handles HTTP content encoding and decoding.