Laravel 9 и Http

dakata__92

Super Moderator
Колеги, необходимо ми е да връщам празен отговор от тип Illuminate\Http\Client\Response; Прерових светилата, пробвах какво ли не и не откривам вариант това да стане. Даже правих анонимен клас наследяващ Psr\Http\Message\MessageInterface за да подам на new Response(MessageInterface $message);

PHP:
 /**
     * @param array $data
     * @return Response
     */
    public function post(array $data): Response
    {
        $request = $this->resolveRequest($data);
        if ($request['stop']) {
            //Тук трябва да връщам празен отговор от тип Illuminate\Http\Client\Response
            return Http::response(null, 403); //Връща GuzzleHttp\Promise\PromiseInterface
        }
        $http = Http::withoutVerifying()->timeout($request['timeout']);
        $retryTries = (int)$request['retry']['tries'] ?? 0;
        if ($retryTries > 0) {
            $retryDelay = (int)$request['retry']['delay'] ?? 1000;
            for ($i = 0; $i < $retryTries; $i++) {
                $response = $http->post($request['url'], $request['data']);
                if (!$response->serverError()) {
                    return $response;
                }
                usleep($retryDelay);
            }
        }
        return $http->post($request['url'], $request['data']);
    }
 
Дай малко повече контекст, защо точно такъв отговор ти трябва, стана ми интересно.
Заради методите, които има налични. Това е и класът, който се връща по подразбиране при Http:get, post и други. Принципно проблема го реших с хвърляне на грешка, но ми се искаше да върна празен отговор от тип Response.
 

Back
Горе