php - WordPress wp_remote_retrieve_body() 返回空但邮递员返回值
问题描述
我遇到了 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'] 因为我发现喜欢保持良好的编码习惯。
解决方案
很可能您'blocking' => false
在请求中使用了args
使调用异步的参数,因此不返回响应。
如果您设置'blocking' => true
,您将得到响应。
推荐阅读
- css - 反应 div 样式
- c++ - 从使用概念定义的函数返回新对象
- javascript - ngFor 循环继续执行并在 ionic 3 中使用 firebase 数据库使应用程序崩溃
- python - 使用 CNN 进行多类图像分类 - 找到 3 到 5 个类并显示它们的名称
- corda - 如何通过 Corda Token SDK 限制仅使用特定帐户发行可替代令牌一次
- racket - 在球拍中包装关键字参数?
- python - 比较字符串列表中字符串中每个字符的最快方法
- mysql - Mysql - 仅更新来自相同记录的 1 行
- javascript - JSP 中的 HTML 字符串处理
- django - 如何获取将图像上传到 s3 存储桶的文件名?