wp_remote_post()
Надсилає HTTP запит методом POST. Результат містить HTTP заголовки, дані самої станиці та повертається у вигляді масиву. Обгортка для використання curl.
На запит можна передати дані cookies: передаються вони як масив об’єктів WP_Http_Cookie .
Для HTTP GET методу використовуйте wp_remote_get() .
wp_check_browser_version()
Хуків немає.
Повертає
Массив|WP_Error
.
- Дані відповіді як масиву.
- WP_Error повертається у разі невдалого запиту. Важливо! Якщо сервер повернув нестандартну помилку: 500, 404 і т.д., ви отримаєте дані відповіді, а не WP_Error.
Array ( [headers] => Array ( [date] => Thu, 30 Sep 2010 15:16:36 GMT [server] => Apache [x-powered-by] => PHP/5.3.3 [x-server] => 10.90.6.243 [expires] => Thu, 30 Sep 2010 03:16:36 GMT [cache-control] => Array ( [0] => no-store, no-cache, must-revalidate [1] => post-check=0, pre-check=0 ) [vary] => Accept-Encoding [content-length] => 1641 [connection] => close [content-type] => application/php ) [body] => <html>Це HTML код сторінки сайту!</html> [response] => Array ( [code] => 200 [message] => OK ) [cookies] => Array ( ) )
Шаблон використання
wp_remote_post( $url, array( 'timeout' => 5, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => array(), 'body' => null, // параметри запиту в масиві 'cookies' => array() )));
Використання
wp_remote_post($url, $args);
-
$url
(рядок) (обов’язковий) - URL-адреса запиту.
-
$args
(масив) Аргументи запиту у вигляді масиву. Можуть бути:
body – масив параметрів запиту, де ключ це назва параметра та значення це значення параметра:
array('foo'=>'val', 'bar'=>'val')
timeout — час у секундах отримання даних. Час можна змінити у плагіні через фільтр ” http_request_timeout “.
За замовчуванням: 5redirection — кількість, скільки разів переходити по редиректах, якщо вони є.
Значення можна змінити у плагіні через фільтр “http_request_redirection_count”.
За замовчуванням: 5user-agent – дозволяє встановити user-agent. За умовчанням
WordPress/4.0; http://www.example.com
, де 4.0 – поточна версія WP, а http://www.example.com – адреса сайту. Значення можна змінити за допомогою фільтра http_headers_useragent .
Типово: ‘WordPress/’ . $wp_version. ‘; ‘. get_bloginfo(‘url’)blocking — Чи вимагається запит запитуючого коду. Дозволяє виконувати запити, що не блокують. Типово true. Якщо встановлено значення false, запит буде відправлено на віддалений сервер, і результат повернеться в код, що викликає, негайно, код при цьому знатиме, чи був запит успішним або невдалим, але не отримає жодної відповіді від віддаленого сервера.
Корисно це, коли вам потрібно просто відправити запит і не важливо, що він повернув. (не всі сервери підтримують цю функцію і навіть встановивши цей параметр у false, блокування все одно може бути. Альтернатива: встановити timeout в 0.01 секунду).
Типово: true
compress – дозволяє відправляти тіло запиту (body) у стислому вигляді.
Типово: truedecompress – за промовчанням true. Відповідає за параметр accept-encoding. Якщо встановити в false, то сервера в заголовках буде сказано, що приймаються стислі дані і при отриманні стислі дані тіла (body) будуть розпаковані.
Типово: true- sslverify – логічний. true – перевірятиме SSL сертифікат (підпис, актуальність до сайту) та перерве запит, якщо перевірка не буде пройдена. Якщо ви запитуєте https і знаєте, що перевірка може бути не пройдена, але сайту можна довіряти, то приберіть перевірку сертифіката – поставте в цьому параметрі false.
Типово: true
За замовчуванням: array() (предустановки)
Повний список параметрів дивіться в описі функції wp_remote_request()
Приклади
#1 Відправить дані на віддалений УРЛ
Допустимо нам потрібно надіслати запит на УРЛ http://example.com/profile . POST дані потрібно надсилати у параметрі body:
$url = 'http://example.com/profile'; $ args = array ( 'timeout' => 45, 'redirection' => 5, 'httpversion' => '1.0', 'blocking' => true, 'headers' => array(), 'body' => array( 'username' => 'bob', 'password' => '1234xyz' ), 'cookies' => array() ); $response = wp_remote_post( $url, $args ); // Перевірка помилки if ( is_wp_error( $response ) ) { $error_message = $response->get_error_message(); echo "Щось пішло не так: $ error_message"; } else { echo 'Відповідь: <pre>'; print_r ($ Response); echo '</pre>'; }
У цьому прикладі $response[‘body’] міститиме html код сторінки, отриманої в результаті запиту.
нотатки
- Дивіться: wp_remote_request() Для більшої інформації на відповідній форматі .
- Дивіться: WP_Http::request() For default arguments information.
список змін
З версії 2.7.0 | Введено. |
Код wp_remote_post() wp remote post WP 6.0.2
function wp_remote_post( $url, $args = array() ) { $http = _wp_http_get_object(); return $http->post($url, $args); }