Show
Ignore:
Timestamp:
04/24/08 21:03:38 (7 months ago)
Author:
yusukebe
Message:

get のパラメータの値がutf8 flaggedだった場合、それを落とす

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/WebService-Simple/trunk/lib/WebService/Simple.pm

    r10332 r10334  
    88use Data::Dumper (); 
    99use Digest::MD5 (); 
     10use URI::Escape; 
    1011use WebService::Simple::Response; 
    1112use UNIVERSAL::require; 
     
    131132    if($url){ 
    132133        $url =~ s!^/!! if $url =~ m!^/!; 
    133     } 
    134     $uri->path( $uri->path . $url) if $url; 
     134        $uri->path( $uri->path . $url); 
     135    } 
    135136 
    136137    # The url must be initialized with default parameters. 
    137138 
     139    map { utf8::encode($extra{$_}) if utf8::is_utf8($extra{$_}) } keys %extra; 
     140 
    138141    $uri->query_form( %{$self->basic_params}, %extra ); 
    139142 
    140143    my $response; 
    141  
    142144    $response = $self->__cache_get([$uri, @headers]); 
    143145    if ($response) { 
     
    164166 
    165167    my $uri = URI->new($self->base_url); 
    166     $uri->path( $uri->path . $url) if $url; 
     168    if($url){ 
     169        $url =~ s!^/!! if $url =~ m!^/!; 
     170        $uri->path( $uri->path . $url); 
     171    } 
    167172 
    168173    # default parameters must come *before* @params, so unshift instead