As chaves de opção cURL do Guzzle são constantes PHP
Corrija o aviso do curl_setopt_array sobre chaves de opção usando constantes CURLOPT inteiras no array de opções curl de baixo nível do Guzzle.
Numa requisição Guzzle 7 que usa o manipulador cURL, o array de opções curl de baixo nível usa como chaves as constantes CURLOPT inteiras do PHP:
$options = [
'curl' => [
CURLOPT_PROXY => 'proxy.example',
CURLOPT_PROXYPORT => 8080,
],
];
Mantenha a chave externa 'curl' do Guzzle entre aspas. Não coloque CURLOPT_PROXY nem CURLOPT_PROXYPORT entre aspas. Escrever 'CURLOPT_PROXY' cria uma string comum com esse nome; o PHP não a converte no valor numérico da constante.
Essa distinção explica o aviso do curl_setopt_array de que as chaves devem ser constantes CURLOPT ou inteiros equivalentes. Verifique a forma do array antes de mudar o endereço ou a conta do proxy: esse aviso trata da configuração do handle e não é prova de que o proxy remoto recusou uma conexão.
Quando não é necessário nenhum comportamento cURL de baixo nível, a opção de requisição normal do Guzzle é mais simples:
$options = [
'proxy' => 'http://proxy.example:8080',
];
Escolha a interface pretendida e mantenha os tipos das chaves coerentes. Quando essa forma é válida, uma entrada HTTP da lista de proxies HTTP pode fornecer o endpoint para uma requisição permitida a uma URL pública sem conta de proxy. O array curl de baixo nível exige o manipulador cURL; outro manipulador não se torna cURL só porque esse array está presente.