Php 痛风罐';由于SSL,无法访问此网站

Php 痛风罐';由于SSL,无法访问此网站,php,symfony,curl,guzzle,goutte,Php,Symfony,Curl,Guzzle,Goutte,我正在使用Fabbot/goutte 3.2,尝试使用此代码访问网站,但不起作用 $client = new \Goutte\Client(); $guzzleClient = new \GuzzleHttp\Client(array( 'curl' => array( CURLOPT_FOLLOWLOCATION => true, CURLOPT_SSL_VERIFYHOST => false,

我正在使用Fabbot/goutte 3.2,尝试使用此代码访问网站,但不起作用

    $client = new \Goutte\Client();

    $guzzleClient = new \GuzzleHttp\Client(array(
        'curl' => array(
            CURLOPT_FOLLOWLOCATION => true,
            CURLOPT_SSL_VERIFYHOST => false,
            CURLOPT_SSL_VERIFYPEER => false),
    ));
    $client->setClient($guzzleClient);

    $crawler = $client->request('GET', "www.superpharm.pl/sklepy");
    $crawler->filter('body')->each(function ($node) {
        print $node->text() . "\n";
    });
获取此错误:

In CurlFactory.php line 186:

  [GuzzleHttp\Exception\ConnectException]                                      
  cURL error 7: Failed to connect to localhost port 80: Connection refused (s  
  ee http://curl.haxx.se/libcurl/c/libcurl-errors.html)    
这是有效的:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "www.superpharm.pl/sklepy");
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    $html = curl_exec($ch);

    echo $html;
这也是可行的(没有痛风客户端):


有人知道为什么不使用goutte吗?

goutte使用的客户端首先尝试根据$URI参数获取绝对URI。由于您从URI中省略了方案(即https://),客户端将其转换为:

http://localhost/www.superpharm.pl/sklepy
解决方案是简单地更改您的URI,使其包含如下方案:

$crawler = $client->request('GET', "https://www.superpharm.pl/sklepy");
$crawler = $client->request('GET', "https://www.superpharm.pl/sklepy");