📜  laravel 6 发出 http 请求 - PHP (1)

📅  最后修改于: 2023-12-03 14:43:44.151000             🧑  作者: Mango

Laravel 6 发出 HTTP 请求

在 Laravel 6 中,可以用 Illuminate\Support\Facades\Http 来发出 HTTP 请求,包括 GET、POST、PUT、PATCH、DELETE 等请求。下面我们来一步步介绍如何使用。

安装 http-client

在 Laravel 6 中,默认是没有安装 http-client 的包的,需要自己手动安装。安装方法:

composer require guzzlehttp/guzzle
发送 GET 请求
$response = Http::get('http://example.com');
$body = $response->body();

注意:body() 方法返回的是字符串,需要根据实际情况进行解析。如果需要解析 JSON 内容,可以使用 json() 方法:

$response = Http::get('http://example.com/api/users');
$data = $response->json();
发送 POST 请求
$response = Http::post('http://example.com/api/users', [
    'name' => 'John Doe',
    'email' => 'john@example.com',
]);
发送 PUT 请求
$response = Http::put('http://example.com/api/users/1', [
    'name' => 'John Doe',
    'email' => 'john@example.com',
]);
发送 PATCH 请求
$response = Http::patch('http://example.com/api/users/1', [
    'name' => 'John Doe',
]);
发送 DELETE 请求
$response = Http::delete('http://example.com/api/users/1');
发送带参数的请求

可以通过 withHeaders()withBody() 方法分别设置请求头和请求体:

$response = Http::withHeaders([
    'User-Agent' => 'My App',
])->withBody('hello world', 'text/plain')->post('http://example.com/api/hello');
发送带文件的请求

可以使用 attach() 方法来发送带文件的请求:

$response = Http::attach(
    'photo', file_get_contents('photo.jpg'), 'photo.jpg'
)->post('http://example.com/api/photo');

以上就是 Laravel 6 发出 HTTP 请求的基本用法,更多详细用法可以查看官方文档。