WP_REMOTE_RETRIEVE_RESPONSE_MESSAGE() │ WP 2.7.0
Функция wp_remote_retrieve_response_message() позволяет получить только сообщение ответа из сырого HTTP-ответа.
Важно
Если передать некорректное значение параметра, функция вернет пустую строку.
Возвращаемое значение
- String: Сообщение ответа. Будет пустой строкой, если передано некорректное значение параметра.
Использование
Для использования функции необходимо передать ей параметр $response.
wp_remote_retrieve_response_message( $response );
Где:
- $response (array|WP_Error): (обязательный) HTTP-ответ.
Примеры использования
Пример 1: Получение сообщения ответа
$res = wp_remote_get('http://wp-kama.com');
echo wp_remote_retrieve_response_message( $res ); //> OK
$res = wp_remote_get('http://wp-kama.com/error404');
echo wp_remote_retrieve_response_message( $res ); //> Not Found
Эти строки показывают, как можно получить сообщение ответа от сервера. В первом случае сервер возвращает "OK", а во втором случае "Not Found", что означает, что страница не найдена.
Пример 2: Получение информации о фильме с КиноПоиска
Этот пример демонстрирует, как получить информацию о фильме с сайта КиноПоиск и проверить ответ на наличие ошибок.
/**
* Получает информацию о фильме с КиноПоиска.
* Информация предоставлена http://docs.kinopoiskapi.apiary.io/.
*
* @param int $id ID фильма на сайте
* @return string|WP_Error Возвращает тело ответа при успехе и объект WP_Error при неудаче
*/
function kinopoisk_get_movie( $id ) {
// Параметры GET-запроса
$params = array(
'filmID' => absint( $id ),
);
// Создание URL с параметрами
$url = 'http://api.kinopoisk.cf/getFilm';
$url = add_query_arg( $params, esc_url_raw($url) );
// Запрос
$response = wp_remote_get( $url );
// Проверка кода ответа
$response_code = wp_remote_retrieve_response_code( $response );
$response_message = wp_remote_retrieve_response_message( $response );
$response_body = json_decode(wp_remote_retrieve_body( $response ));
if ( 200 != $response_code && ! empty( $response_message ) ) {
return new WP_Error( $response_code, $response_message );
}
if ( 200 != $response_code ) {
return new WP_Error( $response_code, 'Неизвестная ошибка' );
}
if( ! $response_body ) {
return new WP_Error( 'nodata', 'Нет данных о фильме или такого фильма нет в базе' );
}
return $response_body;
}
// Запрос
$res = kinopoisk_get_movie( 714888 );
// Вывод ошибки или информации
if ( is_wp_error( $res ) ) {
echo 'Ошибка запроса IMDB: '. wp_strip_all_tags( $res->get_error_message() );
}
else {
echo 'Фильм: "' . esc_html( $res->nameRU ) .' ('. (int) $res->year .'.) Рейтинг: '. $res->ratingData->rating;
}
// В результате получаем:
// Фильм: "Звёздные войны: Пробуждение силы" (2015). Рейтинг: 7.3
Этот код демонстрирует, как получить информацию о фильме по его ID. Если в процессе возникает ошибка, она будет обработана и выведена.
Изменения
Функция была введена в версии 2.7.0 WordPress.
Код функции
Функция wp_remote_retrieve_response_message() выглядит следующим образом:
function wp_remote_retrieve_response_message( $response ) {
if ( is_wp_error( $response ) || ! isset( $response['response'] ) || ! is_array( $response['response'] ) ) {
return '';
}
return $response['response']['message'];
}
Связанные функции
Вы можете использовать следующие функции для работы с 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_safe_remote_request()
Эти функции помогут вам более эффективно работать с удаленными запросами в WordPress.