better handling of character encoding in Cache
This commit is contained in:
parent
9f9f9aa572
commit
97f75c2a33
1 changed files with 21 additions and 19 deletions
|
|
@ -19,6 +19,8 @@ use File::Path;
|
||||||
use HTTP::Headers;
|
use HTTP::Headers;
|
||||||
use HTTP::Request;
|
use HTTP::Request;
|
||||||
use LWP::UserAgent;
|
use LWP::UserAgent;
|
||||||
|
use Digest::MD5;
|
||||||
|
use Encode;
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
|
|
@ -157,17 +159,16 @@ sub parseKey {
|
||||||
my $class = shift;
|
my $class = shift;
|
||||||
my $key = shift;
|
my $key = shift;
|
||||||
if (ref $key eq "ARRAY") {
|
if (ref $key eq "ARRAY") {
|
||||||
my @parts = @{$key};
|
my @parts = @{ $key };
|
||||||
my @fixed;
|
foreach my $part (@parts) {
|
||||||
foreach my $part (@parts) {
|
$part = Digest::MD5::md5_base64(Encode::encode_utf8($part));
|
||||||
$part = Digest::MD5::md5_base64($part);
|
$part =~ tr{/}{-};
|
||||||
$part =~ s/\//-/g;
|
}
|
||||||
push(@fixed,$part);
|
return join('/',@parts);
|
||||||
}
|
}
|
||||||
return join('/',@fixed);
|
else {
|
||||||
} else {
|
$key = Digest::MD5::md5_base64(Encode::encode_utf8($key));
|
||||||
$key = Digest::MD5::md5_base64($key);
|
$key =~ tr{/}{-};
|
||||||
$key =~ s/\//-/g;
|
|
||||||
return $key;
|
return $key;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -234,14 +235,15 @@ sub setByHTTP {
|
||||||
my $referer = "http://webgui.http.request/".$self->session->env->get("SERVER_NAME").$self->session->env->get("REQUEST_URI");
|
my $referer = "http://webgui.http.request/".$self->session->env->get("SERVER_NAME").$self->session->env->get("REQUEST_URI");
|
||||||
chomp $referer;
|
chomp $referer;
|
||||||
$header->referer($referer);
|
$header->referer($referer);
|
||||||
my $request = new HTTP::Request (GET => $url, $header);
|
my $request = HTTP::Request->new(GET => $url, $header);
|
||||||
my $response = $userAgent->request($request);
|
my $response = $userAgent->request($request);
|
||||||
if ($response->is_error) {
|
if ($response->is_error) {
|
||||||
$self->session->errorHandler->error($url." could not be retrieved.");
|
$self->session->errorHandler->error($url." could not be retrieved.");
|
||||||
} else {
|
}
|
||||||
$self->set($response->content,$ttl);
|
else {
|
||||||
}
|
$self->set($response->decoded_content,$ttl);
|
||||||
return $response->content;
|
}
|
||||||
|
return $response->decoded_content;
|
||||||
}
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue