diff --git a/lib/NGCP/API/Client.pm b/lib/NGCP/API/Client.pm index bc25a95..d71eb46 100644 --- a/lib/NGCP/API/Client.pm +++ b/lib/NGCP/API/Client.pm @@ -103,6 +103,8 @@ sub request { sub next_page { my ($self, $uri) = @_; + (my $params = $uri) =~ s/^[^?]+\?//; + unless ($self->{_ua}) { ($self->{_ua},$self->{_urlbase}) = $self->_create_ua($uri); $self->{_collection_url} = sprintf "https://%s%s%spage=1&rows=%d", $self->{_urlbase}, @@ -118,8 +120,12 @@ sub next_page { my $res = NGCP::API::Client::Result->new($self->{_ua}->request($req)); undef $self->{_collection_url}; - if ('HASH' eq ref (my $data = $res->as_hash())) { + + my $data = $res->as_hash(); + if ($data && ref($data) eq 'HASH') { $uri = $data->{_links}->{next}->{href}; + return $res unless $uri && $uri =~ /rows/; + $uri .= '&'.$params if $params && $uri !~ /\Q$params\E/; $self->{_collection_url} = $self->_get_url($self->{_urlbase},$uri) if $uri; }