1 package Arvados::Request;
7 @Arvados::HTTP::ISA = qw(LWP::UserAgent);
13 bless ($self, $class);
14 return $self->_init(@_);
20 $self->{'ua'} = new LWP::UserAgent(@_);
21 $self->{'ua'}->agent ("libarvados-perl/".$Warehouse::VERSION);
28 $self->{'uri'} = shift;
35 $req{$self->{'method'}} = $self->{'uri'};
36 $self->{'req'} = new HTTP::Request (%req);
37 $self->{'req'}->header('Authorization' => ('OAuth2 ' . $self->{'authToken'})) if $self->{'authToken'};
40 while (($p, $v) = each %{$self->{'queryParams'}}) {
41 $content{$p} = (ref($v) eq "") ? $v : JSON::encode_json($v);
44 while (($p, $v) = each %content) {
45 $content .= '&' unless $content eq '';
46 $content .= uri_escape($p);
48 $content .= uri_escape($v);
50 $self->{'req'}->content_type("application/x-www-form-urlencoded; charset='utf8'");
51 $self->{'req'}->content(Encode::encode('utf8', $content));
52 $self->{'res'} = $self->{'ua'}->request ($self->{'req'});
58 return ($self->{'res'}->code(),
59 $self->{'res'}->message());
65 return $self->{'res'}->content;
71 $self->{'method'} = shift;
77 $self->{'queryParams'} = shift;
83 $self->{'authToken'} = shift;