9512d9e92adf96a6e857ebad9385420a131b41a0
hiram
  Fri Jun 14 12:19:11 2024 -0700
correctly form URL when no standard arguments refs #23589

diff --git src/hg/hubApi/tests/jsonConsumer.pl src/hg/hubApi/tests/jsonConsumer.pl
index b3c8169..8ad4545 100755
--- src/hg/hubApi/tests/jsonConsumer.pl
+++ src/hg/hubApi/tests/jsonConsumer.pl
@@ -119,44 +119,49 @@
   $headers->{'Content-Type'} = 'application/json' unless exists $headers->{'Content-Type'};
   if($requestCount == 15) { # check every 15
     my $currentTime = Time::HiRes::time();
     my $diff = $currentTime - $lastRequestTime;
     # if less than a second then sleep for the remainder of the second
     if($diff < 1) {
       Time::HiRes::sleep(1-$diff);
     }
     # reset
     $lastRequestTime = Time::HiRes::time();
     $requestCount = 0;
   }
 
   $endpoint =~ s#^/##;
   my $url = "$server/$endpoint";
+  my $argSeparator = ";";
 
   if(%{$parameters}) {
     my @params;
     foreach my $key (keys %{$parameters}) {
       my $value = $parameters->{$key};
       push(@params, "$key=$value");
     }
     my $param_string = join(';', @params);
     $url.= '?'.$param_string;
+  } else {
+    if ($debug || $measureTiming || $jsonOutputArrays || length($maxItemsOutput) ) {
+     $argSeparator = "?";
+   }
   }
-  if ($debug) { $url .= ";debug=1"; }
-  if ($measureTiming) { $url .= ";measureTiming=1"; }
-  if ($jsonOutputArrays) { $url .= ";jsonOutputArrays=1"; }
-  if (length($maxItemsOutput)) { $url .= ";maxItemsOutput=$maxItemsOutput"; }
+  if ($debug) { $url .= "${argSeparator}debug=1"; }
+  if ($measureTiming) { $url .= "${argSeparator}measureTiming=1"; }
+  if ($jsonOutputArrays) { $url .= "${argSeparator}jsonOutputArrays=1"; }
+  if (length($maxItemsOutput)) { $url .= "${argSeparator}maxItemsOutput=$maxItemsOutput"; }
   printf STDERR "### '%s'\n", $url;
   my $response = $http->get($url, {headers => $headers});
   my $status = $response->{status};
   if(!$response->{success}) {
     # Quickly check for rate limit exceeded & Retry-After (lowercase due to our client)
     if($status == 429 && exists $response->{headers}->{'retry-after'}) {
       my ($status, $reason) = ($response->{status}, $response->{reason});
       my $retry = $response->{headers}->{'retry-after'};
       printf STDERR "Failed for $endpoint! Status code: ${status}. Reason: ${reason}, retry-after: $retry seconds\n";
 #      hashOutput($response->{headers});
       Time::HiRes::sleep($retry);
       # After sleeping see that we re-request
       return performRestAction($endpoint, $parameters, $headers);
     }
     else {