📜  为什么在PHP中使用 Guzzle 而不是 cURL?

📅  最后修改于: 2022-05-13 01:56:33.274000             🧑  作者: Mango

为什么在PHP中使用 Guzzle 而不是 cURL?

什么是卷曲
cURL 是PHP中的一个模块,我们可以使用 libcurl。 libcurl 是PHP中用于创建连接并与可能具有不同类型协议的各种不同服务器通信的库。 cURl 为我们提供了各种预构建的函数,例如 curl_init()、curl_setopt()、curl_exec()、curl_close()。
cURL 的限制:

  • cURL 不支持任何递归下载逻辑。
  • cURL 需要额外的选项来下载。
  • 不向我们提供异步和同步请求。

示例:这些是使用 cURL 发出的请求。

PHP

 
// Get cURL resource
$curl = curl_init();
// Set some options
curl_setopt($ch, CURLOPT_POST,
    "https://jsonplaceholder.typicode.com/users");
 
curl_setopt($ch, CURLOPT_POST, false) ;
 
curl_setopt($ch, CURLOPT_RETURNTANSFER, false) ;
$result = curl_exec($ch);
curl_close($ch);
 
?>


PHP
>/vendor/autoload.php';
 
$client = new Client([
    'base_uri'=>'http://httpbin.org',
    'timeout' => 2.0
]);
 
$response = $client->request('GET', 'ip');
 
echo $response->getStatusCOde(), "
"; $body = $response->getBody(); echo $body->getContents(), "
";   echo "
";
print_r(get_class_methods($body));
echo "
"; echo "
";
print_r(get_class_methods($response));
echo "
"; ?>


输出:

什么是Guzzle?
Guzzle 是一个微框架(抽象层),它是一个PHP HTTP 客户端,因此可以轻松发送 HTTP 请求,并且与 Web 服务集成很简单。 Guzzle 可以与任何 HTTP 处理程序一起使用,例如 cURL、socket、PHP 的流包装器。 Guzzle 默认使用 cURL 作为 Http 处理程序。
为什么在PHP中使用 Guzzle 而不是 cURL?

  • 它提供了简单的用户界面。
  • Guzzle 可以使用各种 HTTP 客户端。
  • 它允许我们使用异步和同步请求的功能。
  • Guzzle 具有内置的单元测试支持,这使得为应用程序编写单元测试和模拟 http 请求变得更加容易。

示例:这些是使用 Guzzle 发出的请求。

PHP

>/vendor/autoload.php';
 
$client = new Client([
    'base_uri'=>'http://httpbin.org',
    'timeout' => 2.0
]);
 
$response = $client->request('GET', 'ip');
 
echo $response->getStatusCOde(), "
"; $body = $response->getBody(); echo $body->getContents(), "
";   echo "
";
print_r(get_class_methods($body));
echo "
"; echo "
";
print_r(get_class_methods($response));
echo "
"; ?>

输出: