我试图用以下代码发布
$userTokenApi = \'https://api.mindbodyonline.com/public/v6/usertoken/issue\';
$args = array(
\'headers\' => array(
\'Content-Type\' => \'application/json\',
\'SiteId\' => \'6387\',
\'Api-Key\' => \'7bba39594b4d460293abdfd64c8eea48\'
),
\'body\' => array(
\'Username\' => \'myusername\',
\'Password\' => \'mypassword\'
)
);
$request = wp_remote_post($userTokenApi, $args);
$responseCode = wp_remote_retrieve_response_code( $request );
$body = wp_remote_retrieve_body($request);
if ( is_wp_error( $request ) ) {
return false; // Bail Early
}
$pretty = json_decode( $body ); ?>
但我从API得到的回应是
Error:
Code: "MissingRequiredFields"
Message: "The following parameters are required: Username, Password"
这里可以看到相同操作(使用PHP)的标准HTTP请求
https://developers.mindbodyonline.com/PublicDocumentation/V6#user-tokens 使用postman,我可以通过PHP-HTTP Request2、PHP-cURL和任何其他类型的代码发布和接收我的响应。
我不确定我在这里遗漏了什么或者我在documentation
任何帮助都将是惊人的。可以看到实时问题here - 控制台中有错误。
最合适的回答,由SO网友:Sally CJ 整理而成
您正在设置Content-Type
标题至application/json
和wp_remote_post()
不会智能地对请求数据进行JSON编码(body
数组),所以应该手动执行。例如:
\'body\' => json_encode( array(
\'Username\' => \'myusername\',
\'Password\' => \'mypassword\'
) )