如果有人可以帮助将此功能从Php转换为Perl,那将是很好的,基本上这个功能是为了获取https网址的内容。现在我对Perl并不擅长,我还没有学会如何使用cURL。
function curl_get_content($url)
{
$handle = curl_init();
curl_setopt($handle, CURLOPT_URL, $url);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($handle, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($handle, CURLOPT_SSLVERSION, 3);
$data = curl_exec($handle);
curl_close($handle);
return $data;
}
谢谢!
编辑:
我试图用这个
my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 1 });
my $header = HTTP::Request->new(GET => $URL);
my $request = HTTP::Request->new('GET', $URL, $header);
my $response = $ua->request($request);
if ($response->is_success){
print "URL:$URL\nHeaders:\n";
print $response->headers_as_string;
}elsif ($response->is_error){
print "Error:$URL\n";
print $response->error_as_HTML;
}
但它一直给我服务器错误:500。
答案 0 :(得分:1)
我怀疑你没有正确设置标题,所以当服务器收到你的请求并尝试处理标题时,它不理解内容而只是放弃(给你500错误。)在你的代码中,您将$header
设置为HTTP::Request
对象,但实际上应该是HTTP::Headers
个对象。将其设置为:
my $header = HTTP::Headers->new();
$header->header( 'Content-Type' => 'text/plain' ); # set content-type to what you need
# you can add additional headers if needed