Guzzle 的 cURL 选项键是 PHP 常量
在 Guzzle 的低层 curl 选项数组中使用整数 CURLOPT 常量,解决 curl_setopt_array 的选项键警告。
在使用 cURL 处理器的 Guzzle 7 请求中,低层 curl 选项数组以 PHP 的整数 CURLOPT 常量作为键:
$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。