diff --git a/composer.json b/composer.json index 33b792fd1..eb856ed51 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ "ext-libxml": "*", "ext-curl": "*", "monolog/monolog": "^2.2", - "nyholm/psr7": "^1.4", + "nyholm/psr7": "^1.5", "nyholm/psr7-server": "^1.0", "overtrue/socialite": "^3.5|^4.0.1", "psr/simple-cache": "^1.0|^2.0|^3.0", diff --git a/src/Kernel/HttpClient/Response.php b/src/Kernel/HttpClient/Response.php index c21aa7357..4d9081d52 100644 --- a/src/Kernel/HttpClient/Response.php +++ b/src/Kernel/HttpClient/Response.php @@ -4,12 +4,16 @@ use ArrayAccess; use Closure; +use Http\Discovery\Exception\NotFoundException; +use Http\Discovery\Psr17FactoryDiscovery; use EasyWeChat\Kernel\Contracts\Arrayable; use EasyWeChat\Kernel\Contracts\Jsonable; use EasyWeChat\Kernel\Exceptions\BadMethodCallException; use EasyWeChat\Kernel\Exceptions\BadResponseException; use EasyWeChat\Kernel\Support\Xml; use Nyholm\Psr7\Factory\Psr17Factory; +use Psr\Http\Message\ResponseFactoryInterface; +use Psr\Http\Message\StreamFactoryInterface; use Symfony\Component\HttpClient\Response\MockResponse; use Symfony\Component\HttpClient\Response\StreamableInterface; use Symfony\Component\HttpClient\Response\StreamWrapper; @@ -179,8 +183,10 @@ public function toPsrResponse(ResponseFactoryInterface $responseFactory = null, try { $psr17Factory = class_exists(Psr17Factory::class, false) ? new Psr17Factory() : null; - $responseFactory ??= $psr17Factory ?? Psr17FactoryDiscovery::findResponseFactory(); - $streamFactory ??= $psr17Factory ?? Psr17FactoryDiscovery::findStreamFactory(); + $responseFactory ??= $psr17Factory ?? Psr17FactoryDiscovery::findResponseFactory(); /** @phpstan-ignore-line */ + $streamFactory ??= $psr17Factory ?? Psr17FactoryDiscovery::findStreamFactory(); /** @phpstan-ignore-line */ + + /** @phpstan-ignore-next-line */ } catch (NotFoundException $e) { throw new \LogicException('You cannot use the "Symfony\Component\HttpClient\HttplugClient" as no PSR-17 factories have been found. Try running "composer require nyholm/psr7".', 0, $e); }