How to Use Default HTTP Client in Laravel 7+

Good news…! Laravel 7 has a new HTTP client. It uses guzzlehttp/guzzle dependency & Laravel 7 automatically include this package.

Table of Contents

Basic Usage

Here’s the basic usage of the new HTTP client:

use Illuminate\Support\Facades\Http;

public function index() {
    // send request
    $response = Http::get('https://reqres.in/api/users');

    // get the response as JSON
    $dataJSON = $response->json();

    dd($dataJSON);
}

It supports getpostputpatch, and delete methods.

Error Handling

We’re able to handle errors if anything bad happened during the response. Here are the responses:

$response->body() : string;
$response->json() : array;
$response->status() : int;
$response->ok() : bool;
$response->successful() : bool;
$response->serverError() : bool;
$response->clientError() : bool;
$response->header($header) : string;
$response->headers() : array;

POST Request

Let’s see an example of post request:

$response = Http::post('https://reqres.in/api/users', [
    'name' => 'Obydul',
    'password' => '123456',
]);
$dataJSON = $response->json();

dd($dataJSON);

Pass Headers

We can easily pass headers using this HTTP client:

$response = Http::withHeaders([
    'X-First' => 'foo',
    'X-Second' => 'bar'
])->post('https://reqres.in/api/users', [
    'name' => 'Obydul',
]);

Learn More

There are more features of the new Laravel HTTP client. We can pass Multi-Part Requests, Authentication etc. too. Read Laravel 7 HTTP Client Documentation to know more about their new HTTP client.

That’s all. Thank you. 🙂