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.

Ähnliche Artikel