Die cURL-Optionsschlüssel von Guzzle sind PHP-Konstanten
Beheben Sie die curl_setopt_array-Warnung zu Optionsschlüsseln, indem Sie die ganzzahligen CURLOPT-Konstanten im Curl-Optionsarray auf niedriger Ebene von Guzzle verwenden.
In einer Guzzle-7-Anfrage mit dem cURL-Handler verwendet das Curl-Optionsarray auf niedriger Ebene die ganzzahligen CURLOPT-Konstanten von PHP als Schlüssel:
$options = [
'curl' => [
CURLOPT_PROXY => 'proxy.example',
CURLOPT_PROXYPORT => 8080,
],
];
Der äußere Guzzle-Schlüssel 'curl' bleibt in Anführungszeichen. CURLOPT_PROXY und CURLOPT_PROXYPORT dürfen nicht in Anführungszeichen stehen. Wer 'CURLOPT_PROXY' schreibt, erzeugt eine gewöhnliche Zeichenkette mit diesem Namen; PHP wandelt sie nicht in den numerischen Wert der Konstante um.
Dieser Unterschied erklärt die Warnung von curl_setopt_array, Schlüssel müssten CURLOPT-Konstanten oder gleichwertige ganze Zahlen sein. Prüfen Sie die Form des Arrays, bevor Sie Proxyadresse oder Konto ändern: Die Warnung betrifft die Konfiguration des Handles und ist kein Beweis dafür, dass der entfernte Proxy eine Verbindung abgelehnt hat.
Wird kein cURL-Verhalten auf niedriger Ebene benötigt, ist die normale Anfrageoption von Guzzle einfacher:
$options = [
'proxy' => 'http://proxy.example:8080',
];
Wählen Sie die gewünschte Schnittstelle und halten Sie die Typen ihrer Schlüssel konsistent. Ist diese Form gültig, kann ein HTTP-Eintrag aus der HTTP-Proxy-Liste den Endpunkt für eine erlaubte Anfrage an eine öffentliche URL ohne Proxykonto liefern. Das Curl-Array auf niedriger Ebene setzt den cURL-Handler voraus; ein anderer Handler wird nicht dadurch zu cURL, dass dieses Array vorhanden ist.