我需要使用HTTParty发布数组。如何使用HTTParty发布数组
我的阵列是[1, 2, 3]
和API预计将收到的身体要在形式
"story_hash=1&story_hash=2&story_hash=3"
这不是真的很重要,但here's the docs for the API in question。
目前的解决方案,我拥有的是:
params = [1, 2, 3].inject('') { |memo, h| memo += "&story_hash=#{h}" }
# Strip the first '&'
params.slice!(0)
options = { body: params }
HTTParty.post('/reader/mark_story_hashes_as_read', options)
有没有更好的办法(理想的解决办法是HTTParty的功能,我只是不知道的)?
我尝试以下方法:
options = {
body: { story_hash: [1, 2, 3] }
}
HTTParty.post('/reader/mark_story_hashes_as_read', options)
,但似乎错误地发送体是这样的:
"story_hash[]=1&story_hash[]=2&story_hash[]=3"
该机构是不是真的错,只是不太你期待什么。这将被重建(例如Rails)作为包含三个元素的名为story_hash的数组参数。 (看看如何将表单中的多重选择的结果发布到rails - 相同的想法)。 – struthersneil
@struthersneil对不起,我可能不应该使用这个词。我只是说“不适合我的目的”。 –
我知道 - 我只是添加了传递googlers的注释,以防有人想知道为什么他们的数组编码奇怪:) – struthersneil