Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Http Client

Http Client Laravel Package

symfony/http-client

Symfony HttpClient provides a modern HTTP client for PHP with sync and async requests, streaming responses, retries, and built-in support for common auth and options. Designed for performance, flexible transports, and smooth integration with Symfony apps.

View on GitHub
Deep Wiki
Context7

Provides powerful methods to fetch HTTP resources synchronously or asynchronously

Frequently asked questions about Http Client
Can I replace Guzzle with Symfony HttpClient in Laravel without breaking existing code?
Yes, Symfony HttpClient is a drop-in replacement for Guzzle in Laravel. Bind it to Laravel’s service container using `HttpClientInterface` and update your facade or DI calls. The migration path is well-documented, starting with non-critical endpoints to minimize risk.
Does Symfony HttpClient support async requests in Laravel?
Symfony HttpClient supports async requests via `AsyncClientInterface`, which integrates with Laravel’s async drivers like Swoole or Amp. For synchronous contexts, use the standard client, while async can be leveraged in queues or background jobs.
How do I configure retries or middleware in Symfony HttpClient for Laravel?
Use Symfony’s middleware stack (e.g., `HttpClientMiddleware`) or leverage Laravel’s middleware via `Http::macro()`. Retries are configured via the `retry()` method on requests, similar to Guzzle’s retry logic. Both align with Laravel’s middleware patterns.
Will Symfony HttpClient work with Laravel’s HTTP facade (e.g., `Http::get()`)?
Yes, extend Laravel’s `Http` facade to delegate to Symfony’s client. Bind `HttpClientInterface` in your `AppServiceProvider` and update the facade’s underlying implementation. No changes to facade usage are needed.
Is Symfony HttpClient compatible with Laravel 10/11, or are there version-specific issues?
Symfony HttpClient is fully compatible with Laravel 10/11, including async support in Laravel 11+. No version-specific issues exist, as it adheres to PSR-18 and Laravel’s dependency injection patterns.
How does Symfony HttpClient handle streaming responses compared to Guzzle?
Symfony HttpClient supports streaming responses natively, with improved chunk handling (fixed in v8.1.1). It’s more robust for large responses or reconnection scenarios, though Guzzle may still be preferred for ultra-lightweight use cases.
Can I use Symfony HttpClient in Laravel queues or background jobs?
Absolutely. Symfony’s async client works seamlessly in Laravel queues or background jobs (e.g., with Swoole or Amp). For synchronous jobs, use the standard client, while async is ideal for long-running HTTP tasks.
Are there performance differences between Guzzle and Symfony HttpClient in Laravel?
Symfony HttpClient is slightly heavier than Guzzle for simple requests but offers better tooling for complex scenarios (e.g., retries, middleware). Benchmark critical paths during migration to compare latency/throughput.
How do I mock Symfony HttpClient in Laravel tests (e.g., PHPUnit)?
Use Symfony’s `MockHttpClient` or Laravel’s `Http::fake()` with a custom binding. Replace `HttpClientInterface` in tests with a mock implementing the same interface, ensuring compatibility with Laravel’s testing helpers.
What’s the best way to migrate from Guzzle to Symfony HttpClient in a large Laravel app?
Start with dual configuration (run both clients in parallel), then bind `HttpClientInterface` to Symfony’s client in `AppServiceProvider`. Replace Guzzle-specific logic incrementally, testing middleware and retries at each step. Use feature flags for rollback safety.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codraw/framework-extra-bundle
codraw/messenger
codraw/security
codraw/mailer
codraw/contracts
codraw/profiling
codraw/dependency-injection
codraw/tester
codraw/core
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony