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.

Artigos relacionados