繁体   English   中英

无法启动会话,因为curl_exec()已经发送了标头

[英]Failed to start the session because headers have already been sent by curl_exec()

我已经看到了一些类似的SO问题,但是它们并没有解决我的问题。

当我执行cUrl GET时,出现一条错误消息:

Failed to start the session because headers have already been sent by
".../cUrlWrapper.php" at line 60.

相应的PHP代码是:

$this->curl = curl_init($url);
curl_exec($this->curl);  // Line 60

有谁知道发生了什么事以及我该如何解决?

解决方案更新

尽管批准的解决方案解决了我的问题(变通办法),但我还删除了服务中不必要的ContainerAwareTrait (导致问题的根本原因),而这首先表现得更好。

除非您设置“返回传输”选项, curl_exec()输出 URL请求的结果。 输出发生后,您将无法设置任何新的标头,例如启动会话。

你可以调用session_start()你包括 cUrlWrapper.php文件(或任何调用该函数curl_exec()中), 或者你可以赶上URL请求,并随后将其输出的结果:

$this->curl = curl_init($url);
curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($this->curl);
// perhaps "return $result;" if this is in a function

// ...
session_start();
// ...

echo $result;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM