CodeIgniter 4.4+ の CURLRequest でプロキシを設定する
CodeIgniter 4.4 以降では CURLRequest のオプションにプロキシ URL を渡し、CONNECT の挙動を考慮します。
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 文字列を 1 つ受け取ります。Requests 形式の http/https マッピングは別の形式です。このオプションが使えない場合は、インストール済みの CodeIgniter のバージョンを確認してください。
CURLRequest はこのオプションに対して CURLOPT_PROXY を設定し、CURLOPT_HTTPPROXYTUNNEL を有効にします。そのため HTTP 中継者は、目的のターゲットへの CONNECT を許可している必要があります。
プロキシ URL にはリスナーの実際のスキームを使い、API エンドポイントはリクエスト URL に残します。許可された公開 API へのリクエストでは、HTTP プロキシ一覧が HTTP プロキシ URL の候補を提供します。ノードが実際のターゲットへの CONNECT を許可しているか確認してください。返されたレスポンスと失敗は、アプリケーションの既存の呼び出し経路で処理します。