使用Guzzle获取远程数据

I want to fetch data from webpages using Guzzle. I have written the following code:

<?php

require_once 'vendor/autoload.php';

$client = new \GuzzleHttp\Client(['base_uri' => 'https://yandex.ru']);

$response = $client->request('GET');

$body = $response->getBody();

echo $body;

But I receive Fatal Error when I run this code on my localhost.

Fatal error: Uncaught exception 'GuzzleHttp\Exception\RequestException' with message 'cURL error 60: SSL certificate problem: unable to get local issuer certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)' in C:\Xampp\htdocs\Guzzle\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php:187 Stack trace: #0 C:\Xampp\htdocs\Guzzle\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(150): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array) #1 C:\Xampp\htdocs\Guzzle\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php(103): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory)) #2 C:\Xampp\htdocs\Guzzle\vendor\guzzlehttp\guzzle\src\Handler\CurlHandler.php(43): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory)) #3 C:\Xampp\htdocs\Guzzle\vendor\guzzlehttp\guzzle in C:\Xampp\htdocs\Guzzle\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php on line 187

The problem is that when I delete the last three lines of my code, it works well, so the issue is with request. Could anyone suggest a solution?

This error occur when the curl.cainfo and openssl.cafile config properties of the php.ini file, do not target any valid certificate that allow you to create connection with ssl as they will be invalid.

With https://yandex.ru you connect over ssl, but not in httpbin.org case. That's why you don't get the SSL certificate problem.

As a solution, I recommend you this article.