Wordpress HTTP API导致JSON_ERROR_SYNTAX

时间:2014-03-03 19:18:28

标签: php wordpress api

我正在尝试在使用我们的API的wordpress插件中正确使用wp_remote_get。 API检查请求正文is_json,返回4 - 又名JSON_ERROR_SYNTAX。使用cURL具有所需的响应。这是我的代码:

$args = array(
    'body' => array('api_key' => 123),
    'timeout' => '5',
    'httpversion' => '1.0',
    'blocking' => true,
    'headers' => array(),
    'cookies' => array()
);

$result = wp_remote_request('https://myapi.endpoint/api/1.0/request', $args);
var_dump($result['body'])

var_dump:string(13) ""api_key=123""

而我的cURL请求的var_dump是string(15) "{"api_key=123"}"

关于我做错了什么的任何想法?

1 个答案:

答案 0 :(得分:1)

正如Marc B所说,wp并没有发送json。您需要在标题中设置内容类型,并将其发送为json:

$body = array('api_key' => 123);
$headers = array (
    'Accept' => 'application/json',
    'Content-Type' => 'application/json',
    'Content-Length' => strlen(json_encode($body)
);
$args = array(
    'method' => 'POST',
    'headers' => $headers,
    'body' => json_encode($body)
);