/ / Configurando CURL Parâmetros para fabpot / goutte Client - php, ssl, curl, goutte

Configurando os parâmetros CURL para o fabpot / goutte Client - php, ssl, curl, goutte

Eu estou trabalhando em um crowler web usando goutte(fabpot / goutte). Quando tento me conectar a um site https, ele gera um erro porque o site está usando um certificado autoassinado. Eu estou tentando encontrar o caminho para definir os parâmetros de onda para ignorar o fato de que o certificado ssl é auto-assinado. Seguindo as instruções em https://github.com/FriendsOfPHP/Goutte Eu tentei o seguinte 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);

Infelizmente quando este código é executado, o seguinte erro é lançado:

Erro fatal capturável: o argumento 3 passado para GuzzleHttpClient :: request () deve ser do tipo array, dado booleano

Não consigo descobrir como configurar os parâmetros. Como a chamada é esperada? Qualquer ajuda será apreciada.

Respostas:

1 para resposta № 1

Para definir as opções de curvas, parece queguzzle reconhece a chave "curl" como uma configuração, que recebe uma matriz de valores de configuração relacionados à curvatura. Então, o equivalente ao que você estava inicialmente tentando alcançar se pareceria com o seguinte

$client = new GoutteClient();

$guzzleClient = new GuzzleHttpClient(array(
"curl" => array(
CURLOPT_TIMEOUT => 60,
),
));
$client->setClient($guzzleClient);
$crawler = $client->request("GET", $my_url);

Não tenho certeza de como isso é bem suportado, já queIsso não é indicado em nenhum lugar nos documentos do Guzzle (e fazê-lo dessa maneira faz com que pareça dependente de CURL, o que eu acho que não é a intenção de engordar. Daí a entrada de configuração do tempo limite geral).


0 para resposta № 2

O que acabei fazendo é o seguinte:

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

O "verify" => false ao iniciar o GuzzleClient faz com que ele não verifique os certificados.