Show
Ignore:
Timestamp:
06/01/08 20:30:21 (6 months ago)
Author:
daisuke
Message:

idea to change request_url

Files:
1 modified

Legend:

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

    r12871 r12992  
    119119sub request_url { 
    120120    my $self = shift; 
    121     my ($url, %extra); 
     121    my %args = @_; 
     122 
     123    my $uri = URI->new($args{url}); 
     124    if(my $extra_path = $args{extra_path}){ 
     125        $extra_path =~ s!^/!!; 
     126        $uri->path( $uri->path . $extra_path); 
     127    } 
     128 
     129    my $params = $args{params}; 
     130    if ($params) { 
     131        foreach my $key (keys %$params) { 
     132            if (utf8::is_utf8($params->{$key})) { 
     133                $params->{$key} = utf8::encode( $params->{$key} ); 
     134            } 
     135        $uri->query_form( %$params ); 
     136    } 
     137 
     138    return $uri; 
     139} 
     140 
     141sub get { 
     142    my $self = shift; 
    122143 
    123144    if (ref $_[0] eq 'HASH') { 
     
    131152    } 
    132153 
    133     my $uri = URI->new($self->base_url); 
    134     if($url){ 
    135         $url =~ s!^/!!; 
    136         $uri->path( $uri->path . $url); 
    137     } 
    138  
    139     map { utf8::encode($extra{$_}) if utf8::is_utf8($extra{$_}) } keys %extra; 
    140     $uri->query_form( %{$self->basic_params}, %extra ); 
    141  
    142     return $uri; 
    143 } 
    144  
    145 sub get { 
    146     my $self = shift; 
    147  
    148     my $uri = $self->request_url(@_); 
     154    my $uri = $self->request_url( 
     155        url        => $self->base_url, 
     156        extra_path => $url, 
     157        params     => { %{$self->basic_params}, %extra } 
     158    ); 
    149159    print  "Request URL is $uri\n" if $self->{debug}; 
    150160 
     
    174184    my ($self, $url, @params) = @_; 
    175185 
    176     my $uri = $self->request_url($url); 
     186    # XXX - do not include params 
     187    my $uri = $self->request_url( 
     188        url => $self->base_url, 
     189        extra_path => $url 
     190    ); 
    177191 
    178192    # default parameters must come *before* @params, so unshift instead