WordPress wp_remote_post()返回空数组

时间:2017-01-30 12:34:06

标签: php wordpress

我正在使用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] => 
)

2 个答案:

答案 0 :(得分:1)

这是因为您已将参数 blocking 设置为 false

它使调用异步,因此您的代码不会等待响应,而是继续执行(这是非阻塞参数的目的)。

blocking 设置为 true,您将收到响应。

答案 1 :(得分:0)

尝试删除'blocking'参数。此外,您可能希望使用wp_safe_remote_post。

https://developer.wordpress.org/reference/functions/wp_safe_remote_post/