Возвращает код ответа сервера. Или пустую строку, если в процессе запроса к серверу возникла ошибка.
Функция является частью WordPress HTTP API, про него у меня есть отдельный урок.
wp_remote_retrieve_response_code( $response )
Параметры
- $response
- (массив|WP_Error) Ответ, полученный в результате запроса к серверу функциями wp_remote_get(), wp_remote_post(), wp_remote_head() или wp_remote_request().
Примеры
Выполняем запрос к серверу и, в случае успеха, делаем что-либо:
$response = wp_remote_get( $url ); if( 200 === wp_remote_retrieve_response_code( $response ) ) { // делаем что-либо }
Так как функция возвращает пустую строку в случае возникновения ошибки, то нам не обязательно добавлять проверку с функцией is_wp_error(). Другое дело, если вы пытаетесь получить код ответа напрямую:
$response = wp_remote_get( $url ); if( ! is_wp_error( $response ) && isset( $response[ 'response' ][ 'code' ] ) && 200 === $response[ 'response' ][ 'code' ] ) { // делаем что-либо }
Согласитесь, что первый вариант намного приятнее.
Возможные коды ответа
Ниже перечислены коды ответа, которые можно получить при запросе к серверу.
1xx – Информационные
Код ответа | Сообщение |
---|---|
100 |
Continue |
101 |
Switching Protocols |
102 |
Processing |
105 |
Name Not Resolved |
2xx – Успех
Код ответа | Сообщение |
---|---|
200 |
OK |
201 |
Created |
202 |
Accepted |
203 |
Non-Authoritative Information |
204 |
No Content |
205 |
Reset Content |
206 |
Partial Content |
207 |
Multi-Status |
226 |
IM Used |
3xx – Редиректы
Код ответа | Сообщение |
---|---|
300 |
Multiple Choices |
301 |
Moved Permanently |
302 |
Moved Temporarily |
302 |
Found |
303 |
See Other |
304 |
Not Modified |
305 |
Use Proxy |
306 |
Reserved |
307 |
Temporary Redirect |
4xx – Ошибки клиента
Код ответа | Сообщение |
---|---|
400 |
Bad Request |
401 |
Unauthorized |
402 |
Payment Required |
403 |
Forbidden |
404 |
Not Found |
405 |
Method Not Allowed |
406 |
Not Acceptable |
407 |
Proxy Authentication Required |
408 |
Request Timeout |
409 |
Conflict |
410 |
Gone |
411 |
Length Required |
412 |
Precondition Failed |
413 |
Request Entity Too Large |
414 |
Request-URI Too Large |
415 |
Unsupported Media Type |
416 |
Requested Range Not Satisfiable |
417 |
Expectation Failed |
418 |
I’m a teapot |
422 |
Unprocessable Entity |
423 |
Locked |
424 |
Failed Dependency |
425 |
Unordered Collection |
426 |
Upgrade Required |
428 |
Precondition Required |
429 |
Too Many Requests |
431 |
Request Header Fields Too Large |
434 |
Requested host unavailable |
449 |
Retry With |
451 |
Unavailable For Legal Reasons |
456 |
Unrecoverable Error |
499 |
Client Closed Request |
5xx – Ошибки сервера
Код ответа | Сообщение |
---|---|
500 |
Internal Server Error |
501 |
Not Implemented |
502 |
Bad Gateway |
503 |
Service Unavailable |
504 |
Gateway Timeout |
505 |
HTTP Version Not Supported |
506 |
Variant Also Negotiates |
507 |
Insufficient Storage |
508 |
Loop Detected |
509 |
Bandwidth Limit Exceeded |
510 |
Not Extended |
511 |
Network Authentication Required |
Источник: Блог Миши Рудрастых