2010-06-26 2 views

ответ

0

Оба встроенных streams и cURL extension имеют возможность делать запросы через прокси. Использование либо было бы предпочтительнее использовать сокет напрямую.

Расширение cURL прямо упоминает аутентификацию прокси-сервера, в то время как потоки явно не упоминают об этом, но допускают прокси-сервер в качестве URI, поэтому вы можете использовать синтаксис proto://user:[email protected]:port. Я не пробовал и не знаю точно, если это сработает.

+0

да, я хотел бы использовать непосредственно сокеты в моей программе Intead вызова свертывания расширения. Я не знаю, что получить, и что отправить для аутентификации бросить прокси ... – user377158

+0

Вы действительно не хотите использовать сокеты, когда кто-то уже сделал всю тяжелую работу для вас при создании библиотеки. – Charles

0

Я предполагаю, что вы хотите сделать запрос HTTP через прокси-сервер, для которого требуется проверка подлинности, а не использовать метод проверки подлинности в Squid для проверки запросов на ваш веб-сервер.

Вам просто нужно установить правильные значения для CURLOPT_PROXYAUTH CURLOPT_PROXYPORT (обычно 3128) и CURLOPT_PROXYTYPE (HTTP)

$ch = curl_init(); 
$opts=array(
    CURLOPT_PROXY="squid.example.com", 
    CURLOPT_PROXYPORT=>3128, 
    CURLOPT_PROXYTYPE=>CURLPROXY_HTTP, 
    CURLOPT_PROXYAUTH=>CURLAUTH_BASIC, 
    CURLOPT_PROXYUSERPWD=>"${username}:${password}", 
    CURLOPT_URL=>"http://www.example.com/sompage.html"); 
curl_setopt_array($opts); 
curl_exec($ch); 

Заметим, что это предполагает, что кальмар настроен для проверки подлинности HTTP (а не сеанс или NTLM на основе аутентификация).

Вы действительно не хотите делать это с помощью сокетов в PHP.

НТН

C.