将 id 数组作为 net/http 的查询参数传递

Passing array of id's as query parameter of net/http

我想使用标准 Ruby 客户端执行 GET 请求 net/http:

stores/?ids=2,24,13

我正在尝试这样做,其中 store_ids 是一个 ID 数组,但它不起作用。如果我将单个 id 作为 id 的参数传递,则响应是正确的。

def get_stores_info
  uri = URI(BASE_URL)
  params = { ids: store_ids, offset: DEFAULT_OFFSET, limit: DEFAULT_LIMIT }
  uri.query = URI.encode_www_form(params)
  response = Net::HTTP.get_response(uri).body
  result = JSON.parse response
end

您可以将 store_ids 转换为字符串:

store_ids = [2,24,13]
params = { ids: store_ids.join(','), offset: 0, limit: 25 }

# these are to see that it works.
encoded = URI.encode_www_form(params) # => "ids=%5B2%2C+24%2C+13%5D&offset=0&limit=25"
CGI.unescape(encoded) # => ids=2,24,13&offset=0&limit=25

这是一个Replit