3 # https://wiki.basho.com/display/RIAK/Riak+Search
10 use Data::Dump qw/dump/;
13 my ($class, $url) = @_;
15 my $ua = LWP::UserAgent->new;
27 my ($self, $method, $uri, $content, $headers) = @_;
29 my $full_url = $self->{url} . "/riak/$uri";
30 $full_url =~ s{//+}{/}g;
31 $full_url =~ s{http:/}{http://};
32 $full_url .= '?' . $self->{args} if $self->{args};
34 $headers->{'Content-Type'} = 'application/json' unless exists $headers->{'Content-Type'};
35 $headers->{'Host'} = $1 if $full_url =~ m{http://([^/]+)};
39 if (defined $content) {
40 $content = encode_json $content if ref $content;
41 $req = HTTP::Request->new( $method, $full_url, undef, $content );
43 $req = HTTP::Request->new( $method, $full_url );
46 $req->header( $_ => $headers->{$_} ) foreach keys %$headers;
48 # warn "## $method $full_url ", dump($req, $content);
49 my $response = $self->{ua}->request($req);
51 warn "$method $full_url ", $response->status_line,$/;
53 if ($response->is_success) {
54 #return $response->content;
56 warn "## header,content ",dump( $headers, $content );
57 die $response->status_line . ":" . $response->content;