wp_remote_retrieve_response_message

Получает сообщение ответа из переданного объекта ответа.

Хуков нет.

Возвращает

Строку. Сообщение ответа или пустою строку, если передан неправильный объект ответа.

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

wp_remote_retrieve_response_message( $response );
$response(массив) (обязательный)
Объект ответа, полученный с помощью одной из функций: wp_remote_get(), wp_remote_post(), wp_remote_head() или wp_remote_request().

Примеры

#1 Демонстрация работы функции

$res = wp_remote_get('http://wp-kama.ru');
echo wp_remote_retrieve_response_message( $res ); //> OK

$res = wp_remote_get('http://wp-kama.ru/error404');
echo wp_remote_retrieve_response_message( $res ); //> Not Found

#2 Получим информацию о фильме из Кинопоиска

Этот пример показывает как получить информацию о фильме с сайта Kinopoisk и проверить запрос на ошибки:

/**
 * Получим информацию о фильме с сайта Kinopoisk
 * Работает на базе сервиса 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 );

	elseif ( 200 != $response_code )
		return new WP_Error( $response_code, 'Неизвестная ошибка' );

	elseif( ! $response_body )
		return new WP_Error( 'nodata', 'Нет данных о фильме или такого фильма нет в базе' );

	else
		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

Код из


wp-includes/http.php

WP 4.7.2

<?php
function wp_remote_retrieve_response_message( $response ) {
	if ( is_wp_error($response) || ! isset($response['response']) || ! is_array($response['response']))
		return '';

	return $response['response']['message'];
}