如何在Ruby net/http中将id数组作为查询参数传递
问题原因
Ruby标准库的URI.encode_www_form方法处理数组类型的参数时,默认会生成ids[]=2&ids[]=24&ids[]=13这种带数组后缀的多参数格式,不符合你需要的逗号拼接单参数格式。
解决方案
你只需要提前把store_ids数组用逗号拼接成字符串,再传入参数哈希即可,修改后的代码如下:
def get_stores_info uri = URI(BASE_URL) # 把ID数组转成逗号分隔的字符串 ids_str = store_ids.join(',') params = { ids: ids_str, 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的元素是数字类型,join方法会自动转换为字符串,不需要额外做类型处理,最终生成的query参数就会是ids=2,24,13的预期格式。
内容的提问来源于stack exchange,提问作者McNulty007
相关产品推荐
相关产品推荐

