CURLOPT_PROXYPORT 为 cURL 代理设置补充了什么
了解单独的代理端口选项、它与 CURLOPT_PROXY 中端口之间的优先级,以及为什么端点仍然需要主机。
CURLOPT_PROXYPORT 只提供端口号。它不标识代理主机,不选择协议,也不会在本机创建监听器。
当完整端点写在一起时,新的 PHP cURL 配置更容易阅读:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:3128');
libcurl 文档不建议使用单独的端口选项。已有代码仍可在主机未内嵌端口时使用它:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example');
curl_setopt($handle, CURLOPT_PROXYPORT, 3128);
代理字符串中显式写出的端口优先于单独选项。避免同时维护两个互相冲突的数字。
如果某个片段中只出现 CURLOPT_PROXYPORT,应检查句柄配置的其余部分及其所处环境。仅凭该片段无法看出 libcurl 会使用哪个代理主机(如果有的话)。
3128 端口是常见的部署选择,并非协议探测器。请使用监听器真实的协议和端口。对于公开的 HTTP 线路,HTTP 代理列表提供地址与端口候选,应把它们一起保存在代理 URL 中。在其他端口上可访问的代理,不必仅为匹配示例而迁移。