url.path
возвращает только "/w/api.php"
, поэтому вы теряете строку запроса из своего URL в запросе GET.Вместо этого вы можете использовать url.request_uri
, например,
req = Net::HTTP::Get.new(url.request_uri, "User-Agent" => "ourbandiscalled")
Строка запроса сама по себе доступна как url.query
.В итоге:
irb(main):045:0> url.path
=> "/w/api.php"
irb(main):046:0> url.query
=> "action=query&list=random&rnlimit=1&rnnamespace=0&format=json"
irb(main):047:0> url.request_uri
=> "/w/api.php?action=query&list=random&rnlimit=1&rnnamespace=0&format=json"