From f1a670f48251e0d4fd34cafc6b10e4fcc5e7cc9d Mon Sep 17 00:00:00 2001 From: franck cuny Date: Wed, 3 Nov 2010 18:49:00 +0100 Subject: remove remaining :name in path --- lib/Net/HTTP/Spore/Request.pm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'lib/Net/HTTP') diff --git a/lib/Net/HTTP/Spore/Request.pm b/lib/Net/HTTP/Spore/Request.pm index 8604f35..8a42e16 100644 --- a/lib/Net/HTTP/Spore/Request.pm +++ b/lib/Net/HTTP/Spore/Request.pm @@ -226,7 +226,7 @@ sub uri { my $path = URI::Escape::uri_escape($path_info || '', $path_escape_class); - if (defined $query_string) { + if (defined $query_string && length($query_string) > 0) { $path .= '?' . $query_string; } @@ -284,7 +284,7 @@ sub finalize { my $v = $params->[++$i]; my $modified = 0; - if ($path_info =~ s/\:$k/$v/) { + if ($path_info && $path_info =~ s/\:$k/$v/) { $modified++; } @@ -305,10 +305,17 @@ sub finalize { } if ($modified == 0) { - push @$query, $k.'='.$v; + if (defined $v) { + push @$query, $k.'='.$v; + }else{ + push @$query, $k; + } } } + # clean remaining :name in url + $path_info =~ s/:\w+//g if $path_info; + my $query_string; if (scalar @$query) { $query_string = join('&', @$query); -- cgit 1.4.1