2017-09-29 5 views
2

Ich versuche, eine URL, die einige Zeichen, die nicht-ASCII sind, zum Beispiel: http://perry.wikia.com/wiki/Página_principal, die hat ein á Symbol.HTTP-Anfrage mit Perl zu einem utf-8 URI (einige nicht-ASCII-Zeichen innerhalb) wirft einen 404 Not Found Fehler

Ich habe versucht, mit LWP :: Useragent, aber es wirft einen 404 Not Found error:

#!/usr/bin/perl 

use utf8; 
use LWP::UserAgent; 
use Encode qw(decode encode); 

my $br = LWP::UserAgent->new; 
#~ my $url = 'http://perry.wikia.com/wiki/Página_principal'; # doesn't work either 
my $url = encode('UTF-8','http://perry.wikia.com/wiki/Página_principal'); 
my $response = $br->get($url); 
if ($response->{success}) { 
    my $html = $response->{content}; 
} else { 
    die "Unexpected error requesting $url : " . $response->status_line; 
} 

Ich habe versucht, mit HTTP :: Tiny auch, das gleiche Resultat:

#!/usr/bin/perl 

use utf8; 
use HTTP::Tiny; 
use Encode qw(decode encode); 

my $url = 'http://perry.wikia.com/wiki/Página_principal'; 
#~ my $url = encode('UTF-8','http://perry.wikia.com/wiki/Página_principal'); # doesn't work either 
my $response = HTTP::Tiny->new->get($url); 
if ($response->{success}) { 
    my $html = $response->{content}; 
} else { 
    die "Unexpected error requesting $url : " . $response->{status}; 
} 
+0

Sie haben es versäumt, die URI-Codierung zu tun: "http: // perry.wikia.com/wiki/P% C3% A1gina_principal" ist das, was Sie tatsächlich abrufen möchten. – tjd

+0

Auschecken [URI :: Encode] (https://metacpan.org/pod/URI::Encode) oder [URI :: Escape] (https://metacpan.org/pod/URI::Escape) – tjd

+0

I vergessen zu erwähnen, ich habe versucht, URI :: Escape zu verwenden, um den URI zu entkommen, aber es funktioniert auch nicht, es gibt den gleichen 404 Fehler zurück. Eigentlich, wenn Sie versuchen, nur eine Anfrage an die URI bereits verschlüsselt: http://perry.wikia.com/wiki/P%C3%A1gina_principal es funktioniert nicht:/ – Akronix

Antwort

0

Dies ist kein Fehler in einem der Perl-Module. Diese URL gibt tatsächlich eine 404 zurück.

Verwandte Themen