我正在使用wp_remote_post
发送简单请求,并且每次返回一个空数组。
我的代码
$url = 'https://example.com/page.php';
$email = get_option( 'admin_email' );
$fields = array(
'email' => $email,
'site' => get_site_url(),
);
$response = wp_remote_post( $url, array(
'method' => 'POST',
'timeout' => 5,
'httpversion' => '1.0',
'blocking' => false,
'headers' => array(),
'body' => $fields,
)
);
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";
} else {
echo 'Response:<pre>';
print_r( $response );
echo '</pre>';
}
我得到的回应是:
Array
(
[headers] => Array
(
)
[body] =>
[response] => Array
(
[code] =>
[message] =>
)
[cookies] => Array
(
)
[http_response] =>
)
答案 0 :(得分:1)
这是因为您已将参数 blocking
设置为 false
。
它使调用异步,因此您的代码不会等待响应,而是继续执行(这是非阻塞参数的目的)。
将 blocking
设置为 true
,您将收到响应。
答案 1 :(得分:0)
尝试删除'blocking'参数。此外,您可能希望使用wp_safe_remote_post。
https://developer.wordpress.org/reference/functions/wp_safe_remote_post/