В запросе Guzzle 7 с обработчиком cURL массив параметров curl низкого уровня использует в качестве ключей целочисленные константы CURLOPT из PHP:

$options = [
    'curl' => [
        CURLOPT_PROXY => 'proxy.example',
        CURLOPT_PROXYPORT => 8080,
    ],
];

Внешний ключ Guzzle 'curl' оставляйте в кавычках. Не заключайте CURLOPT_PROXY и CURLOPT_PROXYPORT в кавычки. Запись 'CURLOPT_PROXY' создаёт обычную строку с таким именем; PHP не превращает её в числовое значение константы.

Это различие объясняет предупреждение curl_setopt_array о том, что ключи должны быть константами CURLOPT или эквивалентными целыми числами. Проверьте форму массива, прежде чем менять адрес или учётную запись прокси: это предупреждение касается настройки дескриптора, а не доказательство того, что удалённый прокси отказал в соединении.

Когда поведение cURL низкого уровня не нужно, обычная опция запроса Guzzle проще:

$options = [
    'proxy' => 'http://proxy.example:8080',
];

Выберите нужный интерфейс и поддерживайте типы его ключей согласованными. Когда форма корректна, запись HTTP из списка HTTP-прокси может дать конечную точку для разрешённого запроса к публичному URL без учётной записи прокси. Массив curl низкого уровня требует обработчика cURL; другой обработчик не становится cURL только потому, что этот массив присутствует.

Похожие статьи