如何调试 PHP 中的 cURL 请求?
How can I debug a cURL request in PHP?
在 Slave
站点内,我有一个脚本可以执行 cURL 请求与我的服务器 (Master
)。
在本地,我已经安装了这两个站点,我希望调试 Slave
尝试连接时 Master
上发生的情况。
理想情况下,完美的解决方案是将我自己的请求附加到 PHPStorm 调试器,这样我就可以真正看到发生了什么。
我尝试开始调试,但随后 PHPStorm 附加到调用脚本,而不是接收站点。
你对我如何实际调试它有什么建议,而不需要依赖旧的 var_dump();die();
?
嗯,归根结底,PHPStorm 依赖于 cookie 附加到传入请求。
默认情况下,此类 cookie 具有以下值:XDEBUG_SESSION=PHPSTORM
.
这意味着您只需将以下行添加到您的代码中:
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Cookie: XDEBUG_SESSION=PHPSTORM"));
PHPStorm 将“看到”传入的请求,允许您对其进行调试。
额外提示
之前的技巧无处不在!
如果您尝试从命令行调试 cURL 请求,您只需再次传递 cookie 参数,PHPStorm 将附加到该请求:
--cookie "XDEBUG_SESSION=PHPSTORM"
在 Slave
站点内,我有一个脚本可以执行 cURL 请求与我的服务器 (Master
)。
在本地,我已经安装了这两个站点,我希望调试 Slave
尝试连接时 Master
上发生的情况。
理想情况下,完美的解决方案是将我自己的请求附加到 PHPStorm 调试器,这样我就可以真正看到发生了什么。
我尝试开始调试,但随后 PHPStorm 附加到调用脚本,而不是接收站点。
你对我如何实际调试它有什么建议,而不需要依赖旧的 var_dump();die();
?
嗯,归根结底,PHPStorm 依赖于 cookie 附加到传入请求。
默认情况下,此类 cookie 具有以下值:XDEBUG_SESSION=PHPSTORM
.
这意味着您只需将以下行添加到您的代码中:
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Cookie: XDEBUG_SESSION=PHPSTORM"));
PHPStorm 将“看到”传入的请求,允许您对其进行调试。
额外提示
之前的技巧无处不在!
如果您尝试从命令行调试 cURL 请求,您只需再次传递 cookie 参数,PHPStorm 将附加到该请求:
--cookie "XDEBUG_SESSION=PHPSTORM"