我有 Perl 脚本,我在其中对 HTTPS 服务器执行 PUT 请求并发送文件。该请求仅通过 IO::Socket::SSL 完成。
$socket = new IO::Socket::INET(PeerAddr => $host,PeerPort => $port,Proto => 'tcp');
my $h ="PUT ".$path." HTTP/1.0\r\n";
$h.="Accept: */*\r\n";
........
$h.="\r\n";
print $socket $h;
但现在我需要通过代理服务器执行此请求
最简单的方法是如何做到这一点?我可以配置 prozy 服务器来设置不同类型的连接(如果有不同的类型)。什么是最好的类型?
如何进行请求?据我了解,我必须使用 IO::Socket 连接到代理并放置类似 CONNECT 的内容。
这看起来怎么样?
谢谢
更新 1. 我找到了这样的解决方案http://search.cpan.org/~oleg/IO-Socket-Socks-0.62/lib/IO/Socket/Socks.pm 模块 IO::Socket::Socks 做了什么我需要。但不适用于 HTTPS。我尝试使用 IO::Socket::SecureSocks。但它总是失败
#!/usr/bin/perl
use IO::Socket::SecureSocks;
my $socket = IO::Socket::SecureSocks->new(
ProxyAddr => '127.0.0.1',
ProxyPort => 8876,
ConnectAddr => 'yahoo.com',
ConnectPort => 443,
Timeout => 10
) or die "Error $!\n";
print $socket "GET / HTTP 1.1\r\n\r\n";
print join ('',<$socket>);
它显示错误。我做错了什么?
此代理适用于 PHP 和 https 链接中的 curl。代理是 SOCKS 5 代理