Ich versuche ein Skript zu erstellen, das einfach nur eine Verbindung zu einer Website herstellt. Aus irgendeinem Grund wird es jedoch keine Verbindung zu irgendetwas herstellen, das HTTPS verwendet.Ich kann keine Verbindung zu einer HTTPS-Site mit LWP :: UserAgent herstellen
Wir haben hier einen Proxy aktiviert. Ich glaube jedoch, dass der Proxy nicht das Problem ist, denn wenn ich eine Verbindung zu einem HTTPS innerhalb des Netzwerks herstelle, das nicht durch einen Proxy tunnelt, schlägt es immer noch fehl.
Wenn ich dieses Programm auf einer Website ausführen würde, die nicht HTTPS verwendet, kann ich durch und das Skript funktioniert wie vorgesehen.
Ich frage mich, was könnte möglich sein, indem Sie das Skript von der Verbindung zu SSL-geschützten Websites zu blockieren. Hier
ist der Code, den ich schrieb:
$ENV{HTTPS_DEBUG} = 1;
my $ua = LWP::UserAgent->new(keep_alive => 1);
$ua->agent('Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36');
my $pac = HTTP::ProxyPAC->new(URI->new("http://pacfilelocation:8080/pac_file.pac"));
my $res = $pac->find_proxy("https://www.google.com");
if ($res->direct) {
print "No Proxy Needed\n";
} elsif ($res->proxy) {
print "Proxy: " . $res->proxy . "\n";
$ENV{HTTPS_PROXY} = $res->proxy;
$ENV{HTTP_PROXY} = $res->proxy;
$ua->env_proxy;
}
my $req = new HTTP::Request('GET', 'https://www.google.com/');
$req->header('Accept' => 'text/html');
$req->header('Host', 'www.google.com');
my $res2 = $ua->request($req);
if ($res2->is_success) {
print $res2->decoded_content;
} else {
print "Error: " . $res2->status_line . "\n";
}
Die HTTPS_DEBUG Funktion aus irgendeinem Grund Ausgang nicht die Debug, die dies umso mehr schwer zu lösen macht.
Wenn das Skript ich eine generische Fehlermeldung erhalten läuft:
Error: 500 Can't connect to www.google.com:443
Jede Hilfe wäre toll!
Upgrade von LWP :: Protokoll :: https zu 6.06 hat funktioniert. Vielen Dank! Hinweis: Ich musste 6.06 manuell installieren, da cpan 6.04 verwendet hat – theEli