我正在尝试使用 fopen 从另一个网站读取远程文件。我想使用代理来执行此操作,据我所知我可以这样做:
$context = stream_context_create(array(
'http' => array(
'proxy' => 'tcp://192.168.10.10:80' // The proxy server address and port
),
));
$file = fopen($url, 'r', false, $context)
但有没有办法使用该代理的用户名和密码进行身份验证?或者我是否仅限于使用公共代理?
另外,代理定义是tcp://192.168.10.10:80
。如果我想使用 HTTP 代理,我可以将其更改为http://192.168.10.10:80
?
Thanks.
您可以使用代理授权 http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.34 in the $context
如果代理需要身份验证。示例来自PHP.Net http://www.php.net/manual/en/function.stream-context-create.php#111032:
$opts= array(
'http' => array(
'proxy' => 'tcp://proxyip:8080',
'header' => array(
"Proxy-Authorization: Basic $auth"
)
)
);
$context = stream_context_create($opts);
另外,我认为你不能将 tcp 更改为 httptcp://192.168.10.10:80
因为代理所做的是代表客户端与另一台服务器建立 TCP 连接,然后在客户端和服务器之间来回路由所有流量。显然,它涉及 TCP(有时是 UDP)而不是 HTTP。Http 代理只是“了解”HTTP 协议传送的流量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)