首页 > 解决方案 > PHP Guzzle:cURL 错误 52:来自服务器的空回复 - 可能是什么原因?

问题描述

我使用Guzzle发出这样的代理请求:

Frontend (Vue/Axios) -> proxy.php -> REST API

我需要代理包含基本身份验证标头才能访问 REST API(kirby cms),当然我不想在我的前端包含凭据。

在我开始使用多个承诺(4 个同时请求到 4 个不同端点)之前,这一直很好。现在我重新启动本地 MAMP pro 服务器,然后我可以执行一次请求,它们就可以工作了。每次我在第一次之后重新加载页面时,我都没有在 axios 中得到任何东西,因为显然我的服务器没有返回任何东西:

[02-Mar-2020 22:18:17 Europe/Paris] PHP 致命错误:未捕获的 GuzzleHttp\Exception\ConnectException:cURL 错误 52:来自服务器的空回复(请参阅https://curl.haxx.se/libcurl/c/ libcurl-errors.html ) 在 /Users/USER/Documents/github/folder/raz/cms/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php:200 堆栈跟踪:

# 0 /Users/USER/Documents/github/folder/raz/cms/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(155): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle ), 大批)

#1 /Users/USER/Documents/github/folder/raz/cms/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(105): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler ), 对象(GuzzleHttp\Handler\EasyHandle), 对象(GuzzleHttp\Handler\CurlFactory))

#2 /Users/USER/Documents/github/folder/raz/cms/vendor/guzzlehttp/guzzle/src/Handler/CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler ), 对象(GuzzleHttp\Handler\EasyHandle), 对象(GuzzleHttp\Handler\CurlFactory))

#3 /Users/USER/Documents/githu 在 /Users/USER/Documents/github/folder/raz/cms/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php 第 200 行

我的第一个问题是:服务器不返回任何东西的原因是什么?是不是有些内存用完了?重新启动会重置事情吗?(我的 php 7.2 内存限制为 128MB)还有其他想法吗?

我的第二个问题:我能做些什么来解决这个问题?

感谢您的任何提示!我对 PHP 和服务器的东西不是超级有经验,所以也许我只是错过了一些简单的东西......

提前欢呼和感谢。

PS:我知道thjere是其他具有相同标题的帖子,但那里的解决方案并没有帮助我......

------ UDPATE -----

我想看看如果我不同时对代理进行 axios 调用而是交错调用会发生什么。我总是在开始下一个电话之前等待一个电话完成。这需要时间,但最终会返回所有 4 个响应。

如果我等待返回所有 4 个响应,我可以重新加载页面并再次执行整个过程。如果我开始重新加载,假设在 2 个请求(请求 3 和 4 仍然未决)之后,我的 PHP 服务器崩溃并且我开始收到上述错误。

所以问题 3是:如何确保所有请求都被取消?为什么这会导致我的服务器停止?

标签: phpcurlproxyguzzlemamp-pro

解决方案


推荐阅读