我和我的一些同事得到了net::ERR_SPDY_PROTOCOL_ERROR错误.
我们使用ngnix版本1.8.0.错误不稳定(难以复制),并且Ngnix错误日志没有此错误.
您如何建议我们抓住并解决这个问题?
我试图理解中间件在Laravel 5中是如何工作的.我查看了Middleware Interface并理解我必须实现一个类,它有一个名为"handle"的方法.在"handle"方法中,调用闭包.但我不明白,关闭应该通过什么.什么类会调用我的中间件?它是如何在引擎盖下工作的?可能就像"foreach"一样,所有的中间件都会被轮流调用? 更新: 我正在尝试实现自己的中间件:
interface Middleware
{
public function handle($request, Closure $next);
}
class MiddlewareCollection
{
private $middlewares;
private $request;
public function __construct(Array $middlewares, $request)
{
$this->middlewares = $middlewares;
$this->request = $request;
}
public function run()
{
$this->next(current($this->middlewares), $this->request);
}
private function next(Middleware $middleware, $request)
{
$middleware->handle($request, function($request) {
//How can I call the next middleware?
});
}
}
class FirstMiddleware implements Middleware
{
public function handle($request, Closure $next) {
echo $request.'first ';
return $next($request);
}
}
class SecondMiddleware …Run Code Online (Sandbox Code Playgroud) 我尝试捕获异常,但我仍然收到“致命错误:未捕获的异常 'GuzzleHttp\Exception\ClientException' 和消息 'Client error: 404' in C:\OS\OpenServer\domains\kinopoisk\parser\php\vendor\guzzlehttp\狂饮\src\Middleware.php:69"
<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL);
set_time_limit(0);
require "vendor/autoload.php";
use GuzzleHttp\Client;
use Psr\Http\Message\ResponseInterface;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Exception\ClientException;
$filmsUrl = [297, 298];
$urlIterator = new ArrayObject($filmsUrl);
$client = new Client([
'base_uri' => 'http://example.com',
'cookies' => true,
]);
foreach ($urlIterator->getIterator() as $key => $value) {
try {
$promise = $client->requestAsync('GET', 'post/' . $value, [
'proxy' => [
'http' => 'tcp://216.190.97.3:3128'
]
]);
$promise->then(
function (ResponseInterface $res) {
echo $res->getStatusCode() . "\n";
},
function (RequestException $e) { …Run Code Online (Sandbox Code Playgroud)