From acef63e2e3e629da8b6825f33e6de7bf6bcc4fc2 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Tue, 13 May 2014 14:36:50 -0400 Subject: [PATCH] 2673: Use _method=GET hack to avoid combining request body with GET method (but still support parameters too long to fit in a query string). --- sdk/perl/lib/Arvados.pm | 2 +- sdk/perl/lib/Arvados/Request.pm | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/sdk/perl/lib/Arvados.pm b/sdk/perl/lib/Arvados.pm index 31258f5172..d5eca9035e 100644 --- a/sdk/perl/lib/Arvados.pm +++ b/sdk/perl/lib/Arvados.pm @@ -41,7 +41,7 @@ environment variable, or C Protocol scheme. Default: C environment variable, or C -=item apiToken +=item authToken Authorization token. Default: C environment variable diff --git a/sdk/perl/lib/Arvados/Request.pm b/sdk/perl/lib/Arvados/Request.pm index 0faed28d1a..07ca763d2b 100644 --- a/sdk/perl/lib/Arvados/Request.pm +++ b/sdk/perl/lib/Arvados/Request.pm @@ -32,11 +32,16 @@ sub process_request { my $self = shift; my %req; - $req{$self->{'method'}} = $self->{'uri'}; + my %content; + my $method = $self->{'method'}; + if ($method eq 'GET' || $method eq 'HEAD') { + $content{'_method'} = $method; + $method = 'POST'; + } + $req{$method} = $self->{'uri'}; $self->{'req'} = new HTTP::Request (%req); $self->{'req'}->header('Authorization' => ('OAuth2 ' . $self->{'authToken'})) if $self->{'authToken'}; $self->{'req'}->header('Accept' => 'application/json'); - my %content; my ($p, $v); while (($p, $v) = each %{$self->{'queryParams'}}) { $content{$p} = (ref($v) eq "") ? $v : JSON::encode_json($v); -- 2.30.2