CodeIgniter 4.4.0 为 CURLRequest 增加了代理选项。在请求的选项数组中提供代理 URL:

$client = service('curlrequest');
$response = $client->request('GET', 'https://api.example/', [
    'proxy' => 'http://proxy.example:8080',
    'connect_timeout' => 5,
    'timeout' => 30,
]);

proxy 选项只接受一个 URL 字符串。Requests 风格的 http/https 映射是另一种格式。如果该选项不可用,请检查已安装的 CodeIgniter 版本。

CURLRequest 会为该选项设置 CURLOPT_PROXY 并启用 CURLOPT_HTTPPROXYTUNNEL。因此 HTTP 中间层必须允许 CONNECT 到预期目标。

在代理 URL 中使用监听器的实际 scheme,并把 API 端点保留在请求 URL 中。对于获准的公共 API 请求,HTTP 代理列表可为 HTTP 代理 URL 提供候选;请确认节点允许 CONNECT 到实际目标。通过应用现有的调用路径处理返回的响应和失败。

相关文章