我正在尝试将这些参数作为字符串
发送abc = authenticity_token=lXewdcVQRHZb+O9gVZ+E0xG9Mtg2rnTznkEN/wVk2a4=&design[design_code]=xyz&&design[price]=600&design[discount_percent]=10&design[category_ids]=148&design[property_value_ids]=250&design[property_value_ids]=285&design[property_value_ids]=499&design[image_ids]=208133&
post_design_url = 'some url'
agent = Mechanize.new
agent.user_agent = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; ru-ru) AppleWebKit/533.2+ (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10"
agent.post(post_design_url, abc)
当我在我的rails服务器上检出请求时,我正在
Parameters: {}
我正在尝试在此帖子请求中发送数组。 category_ids和property_value_ids
答案 0 :(得分:1)
我不使用Mechanize
,但我认为你应该像这样添加你的参数:
agent.post(post_design_url, {
"authenticity_token" => "lXewdcVQRHZb+O9gVZ+E0xG9Mtg2rnTznkEN/wVk2a4=",
"design[design_code]" => "xyz",
"design[price]" => "600"
})
答案 1 :(得分:0)
除了 @Sir l33tname ,您还可以使用以下格式
agent.post(post_design_url, {
:param1 => 'one',
:nested => {:param2 => 'two'},
})
答案 2 :(得分:0)
我相信您遇到的问题就在查询参数的开头。
我相信你应该在字符串周围添加引号,并转义你的身份验证令牌:
require 'cgi'
abc = "authenticity_token=#{CGI::escape('lXewdcVQRHZb+O9gVZ+E0xG9Mtg2rnTznkEN/wVk2a4=')}&design[design_code]=xyz&&design[price]=600&design[discount_percent]=10&design[category_ids]=148&design[property_value_ids]=250&design[property_value_ids]=285&design[property_value_ids]=499&design[image_ids]=208133&"
我之前很确定,如果你的完整字符串周围的引号没有得到你,那么你在authenticity_token结尾处的=可能是。