php – Guzzle asynch请求无法正常工作

我正在使用Guzzle,我通过作曲家安装,并没有做一些相对简单的事情.

我可能误解了documentation,但基本上我想要做的是向服务器运行POST请求并继续执行代码而不等待响应.这就是我所拥有的:

$client = new \GuzzleHttp\Client(/*baseUrl, and auth credentials here*/);
$client->post('runtime/process-instances', [
    'future'=>true,
    'json'=> $data // is an array
]);
die("I'm done with the call");

现在假设运行时/进程实例运行大约5mn,我不会在那些5mn之前得到die消息…而是在消息发送到服务器之后我想要它.

现在我无法访问服务器,所以在运行执行之前我无法让服务器响应.我只需要忽略响应.

任何帮助表示赞赏.

我试过的事情:

$client->post(/*blabla*/)->then(function ($response) {});

解决方法:

在Guzzle中发送请求并立即退出是不可能的.异步请求要求您等待它们完成.如果不这样做,请求将不会被发送.

另请注意,您使用的是post而不是postAsync,前者是同步(阻塞)请求.要异步发送发布请求,请使用后者.在您的代码示例中,通过将post更改为postAsync,进程将在请求完成之前退出,但目标将不会收到该请求.

上一篇:L3-021 神坛(极角排序求三角形最小面积)


下一篇:php – 在guzzle中使用文件和字段的POST请求