我正在尝试在使用我们的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"}"
关于我做错了什么的任何想法?
答案 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)
);