调试Async Guzzle请求/响应(Windows)

时间:2014-08-01 14:28:10

标签: symfony curl asynchronous guzzle

我在Symfony(2.4。*)中通过Misd GuzzleBundle使用Guzzle 3.8.1。在我的开发和测试环境中(两者都在同一台服务器上都有api端点),我能够成功激活异步发布请求。

在我的生产环境中,我的端点位于同一台服务器上,但是使用apache vhosts通过单独的子域进行访问。我正在使用基本身份验证,目前它是通过http(最终https)。但是,我的异步请求返回了200个状态代码,但是我没有为这些请求获取存储在远程服务器上的POST数据。

$this->client->addSubscriber(new AsyncPlugin());

$request = $this->client->post(
    'statements',
    array(
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
        'X-Experience-API-Version' => '1.0.1'
    ),
    json_encode($statement)
)->setAuth($this->authuname,$this->authpass);

$response = $request->send();

但是,如果我删除$this->client->addSubscriber(new AsyncPlugin());并同步发出相同的帖子请求,那么我的POST数据将存储在远程服务器上。

我正在使用misd guzzle包中的日志记录功能。对于asynch请求日志,我可以在请求中看到json数据,因为它不会等待我得到的响应:

<<<<<<< HTTP/1.1 200 OK X-Guzzle-Async: Did not wait for the response --------

我已经检查了curl并且它已启用并且在开发中设置与在生产中相同。唯一的问题是async不能在生产服务器上运行。我在Windows Server 2008上使用apache 2.4.6。

还有其他人有类似的问题。无论如何都要在某处记录响应,即使这是异步完成的。我在我的虚拟主机中设置了日志记录,但因为它有200个,我没有看到任何东西。

希望有人可以提供建议,如果您需要任何进一步的信息,请告诉我。

亲切的问候, Paul Pounder

0 个答案:

没有答案