我正在使用wp_remote_retrieve_body()函数遇到奇怪的行为。
发出发布请求时,我可以在POSTMan中正确看到响应。该API仅返回一个字符串值。
但是,由于某些原因,wordpress函数wp_remote_retrieve_body()无法正常工作。我将wp_remote_post()用于发布请求。 POST请求工作正常,但是wp_remote_retrieve_body()不返回正文内容。
我查看了食典并发现其实施方式
function wp_remote_retrieve_body(&$response) {
if ( is_wp_error($response) || ! isset($response['body']) )
return '';
return $response['body'];
}
我认为$ response必须有一个错误。以下是我的代码
$id_ref = 'noerror';
if ( is_wp_error($response) || ! isset($response['body']) ){
$link_pos_id_ref = 'someerror';
}
我希望变量将自身更新为“ someerror”。它做了。因此,我进一步尝试深入探讨该问题-
$id_ref = 'noerror';
if ( is_wp_error($response)){
$id_ref = 'weberror';
}
if(! isset($response['body']) ){
$id_ref = 'isseterror';
}
但是这一次,值没有改变。仍然是'noerror',所以我检查了$ response ['body']的值,发现它确实包含字符串!
我确认响应为200 OK。因此,在这一点上,我可以使用$ response ['body']来获取我的字符串值,但是对于如何投资此问题,我没有更多的想法。
API会返回一个简单的字符串而不是JSON,这可能很奇怪吗?我真的不想继续使用$ response ['body'],因为我发现自己想保持良好的编码习惯。
答案 0 :(得分:0)
很可能您在请求 'blocking' => false
中使用了 args
参数,这使调用异步,因此不会返回响应。
如果您设置 'blocking' => true
,您将收到回复。