Configuración de los parámetros de CURL para fabpot / goutte Client

Estoy trabajando en una red crowler utilizando goutte (fabpot / goutte). Cuando trato de conectarme a un sitio https, arroja un error porque el sitio usa un certificado autofirmado. Estoy tratando de encontrar la manera de establecer los parámetros de curl para ignorar el hecho de que el certificado SSL está autofirmado. Siguiendo las instrucciones en https://github.com/FriendsOfPHP/Goutte probé el siguiente código:

$this->client = new Client(); $this->client->getClient()->setDefaultOption('config/curl/'.CURLOPT_SSL_VERIFYPEER, false); $this->client->getClient()->setDefaultOption('config/curl/'.CURLOPT_CERTINFO, false); 

Lamentablemente, cuando se ejecuta este código, se genera el siguiente error:

Error fatal acumulable: el argumento 3 pasó a GuzzleHttp \ Client :: request () debe ser del tipo array, boolean dado

No se puede averiguar cómo configurar los parámetros. ¿Cómo se espera la llamada? Cualquier ayuda será apreciada.

Para establecer las opciones de curl por cierto, parece que guzzle reconoce la clave “curl” como una configuración de configuración, que toma una matriz de valores de configuración relacionados con curl. Entonces, el equivalente de lo que inicialmente intentabas lograr sería similar al siguiente

 $client = new \Goutte\Client(); $guzzleClient = new \GuzzleHttp\Client(array( 'curl' => array( CURLOPT_TIMEOUT => 60, ), )); $client->setClient($guzzleClient); $crawler = $client->request('GET', $my_url); 

No estoy seguro de lo bien que esto es compatible, ya que no está indicado en ningún lugar en los documentos guzzle (y hacerlo de esta manera hace que parezca que depende de CURL, que creo que no es la intención de guzzle. De ahí la entrada de configuración de timeout general) .

Lo que terminé haciendo es lo siguiente:

 $this->client->setClient(new GuzzleClient(['verify' => false])); 

El ‘verificar’ => falso al iniciar el GuzzleClient hace que no verifique los certificados.