php - 使用 PHP curl 如何获取 400 响应的响应主体

标签 php curl

我正在调用的 api 返回一个包含 HTTP 代码 400 的验证错误的 json 对象。我使用 PHP 的 curl 库实现了客户端,但在错误时 curl_exec 返回 false。如何获取错误的响应正文?

请注意,我正在设置 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

最佳答案

您可以取消设置一次 CURLOPT_FAILONERROR。并按预期将错误状态代码添加到 CURLOPT_HTTP200ALIASES 也可能有所帮助。

 curl_setopt($conn, CURLOPT_FAILONERROR, false);
 curl_setopt($conn, CURLOPT_HTTP200ALIASES, (array)400);

(libcurl 也有一个 CURLOPT_ERRORBUFFER,但您不能在 PHP 中使用该选项。)

顺便说一句,在出现 4xx 错误的情况下,curl 的行为是正确的,不会返回响应主体。不确定是否可以覆盖。所以你可能必须迁移到 PEAR HTTP_Request2或类似的 HTTP 请求类,您可以在其中偏离标准。

关于php - 使用 PHP curl 如何获取 400 响应的响应主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6363916/

相关文章:

curl - 如何通过CURL在Vagrant的SSH中触发Xdebug?

php - 在 XAMPP/Windows 7 上运行的 Google Voice "APIs"的 cURL 问题

java - 使用 Spring MVC 的 REST web 服务在发布 JSON 时返回 null

php - 我不能做外键,约束错误

php - 错误: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined NOOB

php - Yii findAllByAttributes 与 BETWEEN DATES 和 ORDER BY

linux - 如何在 shell 脚本中使用 curl?

php - fatal error : Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in

php - 添加 SQL 计数值

php - (Linux CLI PHP) 在执行期间捕获 CURL 的详细输出到文件