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;
26 my ($self, $method, $uri, $content, $headers) = @_;
28 my $full_url = $self->{url} . "/riak/$uri";
29 $full_url =~ s{//+}{/}g;
30 $full_url =~ s{http:/}{http://};
32 $headers->{'Content-Type'} = 'application/json' unless exists $headers->{'Content-Type'};
36 if (defined $content) {
37 $content = encode_json $content if ref $content;
38 $req = HTTP::Request->new( $method, $full_url, undef, $content );
40 $req = HTTP::Request->new( $method, $full_url );
43 $req->header( $_ => $headers->{$_} ) foreach keys %$headers;
44 $req->header( 'Host' => $1 ) if $self->{url} =~ m{http://([^/]+)};
46 # warn "## $method $full_url ", dump($req, $content);
47 my $response = $self->{ua}->request($req);
49 warn "$method $full_url ", $response->status_line,$/;
51 if ($response->is_success) {
52 #return $response->content;
54 warn "## header,content ",dump( $headers, $content );
55 die $response->status_line . ":" . $response->content;