将 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。
我想使用标准 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。