带参数体的PHP API POST

时间:2017-06-03 08:43:10

标签: php wordpress

这是文档: documentation 这是我使用的代码:

$response = wp_remote_post( 'https://services.daisycon.com/authenticate', array(
    'method' => 'POST',
    'timeout' => 45,
    'redirection' => 5,
    'httpversion' => '1.0',
    'blocking' => true,
    'headers' => array(),
    'body' => array( 'username' => $username, 'password' => $password),
    'cookies' => array()
    )
);

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>';
}

但它不会奏效,它给了我这个:

[body] => {"error":"username is required"}
[response] => Array
    (
        [code] => 400
        [message] => Bad Request
    )

我真的没有看到问题,请帮助我。

1 个答案:

答案 0 :(得分:2)

通过添加json_encode()来修复此问题:

'body' => json_encode(array( 'username' => $username, 'password' => $password)),