【发布时间】:2021-06-09 14:59:01
【问题描述】:
我有一个 php curl 脚本,它返回 get 运行的结果作为来自另一个进程的命令。代码是:
<?php
$arr = getopt("f:");
$url = $arr['f'];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo curl_error($ch);
} else {
echo $result;
}
curl_close($ch);
?>
当我使用 curl 对特定 url 执行 api get 请求时,出现 400 错误,curl_error($ch) 是“请求的 URL 返回错误:400 Bad Request”
当我在邮递员中运行相同的请求时,我收到一个 json 回复,例如:{"result_ok":false,"code":400,"message":"Invalid Email: xxxxxxxxxx@ail.com (POST)" }。
如何获取 curl 请求中返回的 json?如果我在出现错误情况时回显 $result,则它为空。
【问题讨论】:
-
你试过
CURLOPT_FAILONERROR, 0吗?它应该返回一些东西,也许是 JSON。 -
我曾尝试过使用 false 并且它没有改变,但也许有些东西没有更新。我用了你的建议,它奏效了。请将建议作为答案发布,我会接受。