diff --git a/HttpServer/Http/Request.php b/HttpServer/Http/Request.php index b4dd2ed0..e63da5a4 100644 --- a/HttpServer/Http/Request.php +++ b/HttpServer/Http/Request.php @@ -470,17 +470,4 @@ class Request extends HttpService } - /** - * @param string $key - * @param mixed|null $defaultValue - * @return mixed - */ - public function post(string $key, mixed $defaultValue = null): mixed - { - /** @var HttpParams $params */ - $params = Context::getContext(HttpParams::class); - return $params->post($key, $defaultValue); - } - - } diff --git a/Server/HTTPServerListener.php b/Server/HTTPServerListener.php index 8167af5f..a071428a 100644 --- a/Server/HTTPServerListener.php +++ b/Server/HTTPServerListener.php @@ -3,8 +3,7 @@ namespace Server; use Exception; -use HttpServer\Http\Request as HRequest; -use HttpServer\Http\Response as HResponse; +use HttpServer\Route\Node; use HttpServer\Route\Router; use ReflectionException; use Snowflake\Event; @@ -101,24 +100,35 @@ class HTTPServerListener extends Abstracts\Server */ public function onRequest(Request $request, Response $response) { - [$sRequest, $sResponse] = [HRequest::create($request), HResponse::create($response)]; try { + defer(fn() => fire(Event::SYSTEM_RESOURCE_RELEASES)); + [$sRequest, $sResponse] = $this->request($request, $response); $node = $this->router->find_path($sRequest); - if (empty($node)) { + if ($node instanceof Node) { + $sResponse->send($node->dispatch()); + } else { $sResponse->send('404', 404); - return; } - $sResponse->send($node->dispatch(), 200); } catch (Error | Throwable $exception) { - $sResponse->addHeader('Content-Type', 'text/html; charset=utf-8'); - $sResponse->send(jTraceEx($exception, null, true), - $exception->getCode() == 0 ? 500 : $exception->getCode()); - } finally { - $this->_event->dispatch(Event::SYSTEM_RESOURCE_RELEASES); + $response->setHeader('Content-Type', 'text/html; charset=utf-8'); + $response->setStatusCode(500); + $response->end(jTraceEx($exception, null, true)); } } + /** + * @param Request $request + * @param Response $response + * @return array + * @throws Exception + */ + public function request(Request $request, Response $response): array + { + return [\HttpServer\Http\Request::create($request), \HttpServer\Http\Response::create($response)]; + } + + /** * @param Server $server * @param int $fd