我正在调用的api使用HTTP代码400返回验证错误的json对象.我使用PHP的curl库实现了客户端,但是在错误时curl_exec返回false.如何在出错时获取响应正文?
请注意,我正在设置 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
mar*_*rio 22
你可以取消CURLOPT_FAILONERROR一次.CURLOPT_HTTP200ALIASES并按预期添加错误状态代码也可能有所帮助.
curl_setopt($conn, CURLOPT_FAILONERROR, false);
curl_setopt($conn, CURLOPT_HTTP200ALIASES, (array)400);
Run Code Online (Sandbox Code Playgroud)
(libcurl也有一个CURLOPT_ERRORBUFFER,但你不能在PHP中使用该选项.)
顺便说一句,curl在4xx错误的情况下不返回响应体就行为正确.不确定是否可以覆盖.因此,您可能必须迁移到PEAR HTTP_Request2类似的HTTP请求类,您可以在其中偏离标准.
添加:
curl_setopt($ch, CURLOPT_HTTP200ALIASES, array(400));
Run Code Online (Sandbox Code Playgroud)