我想用 Perl 脚本检查我们的代理是否正常工作。我使用 curl 命令测试了我们的代理,它按预期工作:
curl -x 'http://our_proxy:port' -v 'http://www.some_adult_site.com'
这让我在 Wireshark 中得到以下 TCP 流输出:
GET http://www.some_adult_site.com/ HTTP/1.1
User-Agent: curl/7.35.0
Host: www.some_adult_site.com
Accept: */*
Proxy-Connection: Keep-Alive
当我用我的 Perl 脚本尝试这样做时:
#!/usr/bin/perl
use LWP::UserAgent;
use warnings;
# forbidden URL
$forbidden_url = URI->new( 'http://www.some_adult_site.com/' );
# user agent to use a proxy
$user_agent = LWP::UserAgent->new;
$user_agent->proxy( 'http', 'http://our_proxy:port/' );
# request
$req = HTTP::Request->new( GET => $forbidden_url );
# response
$res = $user_agent->request( $req );
print $res->content;
我收到一个 404 not found 页面,其中包含以下 TCP 流
GET http://www.some_adult_site.com/ HTTP/1.1
Host: www.some_adult_site.com
User-Agent: libwww-perl/6.05
对于为什么这不起作用,您有什么建议吗?
最佳答案
代理或站点可能会拒绝某些用户代理。在发出请求之前尝试将代理设置为 curl(你知道它可以工作):
$user_agent->agent('curl/7.35.0');
关于perl - 使用 curl 和 perl 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27480660/