In this post, I will show how to send Guzzle HTTP client requests in a Laravel 12 application. Laravel 12 Guzzle HTTP Request Tutorial
Laravel 12 provides a built-in HTTP Client using the GuzzleHttp/Guzzle package. You can easily run HTTP client requests using the HTTP facade. You can send GET, POST, PUT, and DELETE requests, and easily get responses with text and JSON as well. Additionally, you can easily pass headers and authentication tokens.
Laravel 12 Guzzle HTTP Request Tutorial Example
Install Laravel 12
This step is not required; however, if you have not created the Laravel app, then you may go ahead and execute the below command:
composer create-project laravel/laravel example-app
1) Laravel 12 HTTP cURL GET Request Example:
Here, we will see how to send a cURL HTTP GET request in Laravel 12. Let’s update the route file code and controller file code. You can see the output as well.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PostController;
Route::get('posts', [PostController::class, 'index']);
app/Http/Controllers/PostController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class PostController extends Controller
{
/**
* Write code on Method
*
* @return response()
*/
public function index()
{
$response = Http::get('https://jsonplaceholder.typicode.com/posts');
$jsonData = $response->json();
dd($jsonData);
}
}
2) Laravel 12 HTTP cURL POST Request Example:
Here, we will see how to send a cURL HTTP POST request in Laravel 12. Let’s update the route file code and controller file code. You can see the output as well:
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PostController;
Route::get('posts/store', [PostController::class, 'store']);
app/Http/Controllers/PostController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class PostController extends Controller
{
/**
* Write code on Method
*
* @return response()
*/
public function store()
{
$response = Http::post('https://jsonplaceholder.typicode.com/posts', [
'title' => 'This is test from DevScriptSchool.com',
'body' => 'This is test from DevScriptSchool.com as body',
]);
$jsonData = $response->json();
dd($jsonData);
}
}
3) Laravel 12 HTTP cURL PUT Request Example:
Here, we will see how to send a cURL HTTP PUT request in Laravel 8. Let’s update the route file code and controller file code. You can see the output as well.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PostController;
Route::get('posts/update', [PostController::class, 'update']);
app/Http/Controllers/PostController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class PostController extends Controller
{
/**
* Write code on Method
*
* @return response()
*/
public function update()
{
$response = Http::put('https://jsonplaceholder.typicode.com/posts/1', [
'title' => 'This is test from DevScriptSchool.com',
'body' => 'This is test from DevScriptSchool.com as body',
]);
$jsonData = $response->json();
dd($jsonData);
}
}
4) Laravel 12 HTTP cURL DELETE Request Example:
Here, we will see how to send a cURL HTTP DELETE request in Laravel 12. Let’s update the route file code and controller file code. You can see the output as well.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PostController;
Route::get('posts/delete', [PostController::class, 'delete']);
app/Http/Controllers/PostController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class PostController extends Controller
{
/**
* Write code on Method
*
* @return response()
*/
public function delete()
{
$response = Http::delete('https://jsonplaceholder.typicode.com/posts/1');
$jsonData = $response->json();
dd($jsonData);
}
}
5) Laravel 12 API with Response:
We will create a very simple HTTP request full example. We need to create a simple route to call a controller method. So let’s create it.
routes/web.php
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PostController;
Route::get('posts', [PostController::class, 'index']);
app/Http/Controllers/PostController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
class PostController extends Controller
{
public function index()
{
$response = Http::get('http://jsonplaceholder.typicode.com/posts');
$jsonData = $response->json();
echo "<pre> status:";
print_r($response->status());
echo "<br/> ok:";
print_r($response->ok());
echo "<br/> successful:";
print_r($response->successful());
echo "<br/> serverError:";
print_r($response->serverError());
echo "<br/> clientError:";
print_r($response->clientError());
echo "<br/> headers:";
print_r($response->headers());
}
}
Output:
Read Also How to Upload Multiple Images in Laravel 12 Example
status:200
ok:1
successful:1
serverError:
clientError:
headers:Array
(
[Date] => Array
(
[0] => Thu, 12 Mar 2020 06:08:58 GMT
)
[Content-Type] => Array
(
[0] => application/json; charset=utf-8
)
[Transfer-Encoding] => Array
(
[0] => chunked
)
.....
)
You can also get more information about Http Client in Laravel Docs: Click Here.