Настройка прокси с CURLRequest в CodeIgniter 4.4+
Передайте URL прокси в параметрах CURLRequest в CodeIgniter 4.4 или новее и учитывайте поведение 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. Сопоставление http/https в стиле Requests — другой формат. Если этот параметр недоступен, проверьте установленную версию CodeIgniter.
CURLRequest задаёт CURLOPT_PROXY и включает CURLOPT_HTTPPROXYTUNNEL для этого параметра. Поэтому посредник HTTP должен разрешать CONNECT к нужной цели.
Используйте фактическую схему слушателя в URL прокси и оставляйте конечную точку API в URL запроса. Для разрешённых запросов к публичным API список HTTP-прокси предлагает кандидатов для URL HTTP-прокси; проверьте, разрешает ли узел CONNECT к реальной цели. Обрабатывайте полученный ответ и ошибки через существующий путь вызова в приложении.