2010-06-26 131 views

回答

0

内置的streamscURL extension都能够通过代理发出请求。使用其中任何一种方法都会比直接使用套接字更加优选。

cURL扩展明确提到代理认证,虽然流没有明确提及它,但接受代理作为URI,因此您可以使用proto://user:[email protected]:port语法。我还没有尝试过,并且不确定它是否可行。

+0

是啊,我想直接用在呼唤卷曲扩展我的程序这一翻译插口。 我不知道该收到什么,以及要发送给验证的内容抛出代理... – user377158 2010-06-26 23:44:46

+0

如果有人已经为创建库创建了所有艰难的工作,那么您真的不想使用套接字。 – Charles 2010-06-26 23:57:46

0

我假设你的意思是你想通过一个需要身份验证的代理进行HTTP请求,而不是使用Squid中的身份验证方法来验证对Web服务器的请求。

你只需要为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中使用套接字。

HTH

C.