2012-04-03 46 views
0

我有一系列条目相当大的阵列,我想发布到远程吉拉实例的自定义字段的,所以我想用下路边做红宝石(他们的API不允许它,以及在SQL这是一个有点危险Munge时间的) 我接受其他的建议,但我不能为我的生活工作如何设置我的饼干我最初的GET请求,然后提供的参数和相应的头为后红宝石路边(卷曲)问题与设定参数和饼干

c = Curl::Easy.new("http://jira/secure/Dashboard.jspa") 
c.verbose = true 
c.http_auth_types = :basic 
c.username = 'user' 
c.password = 'pass' 
c.perform 
c.headers="X-Atlassian-Token: no-check" 
params= {:fieldConfigId=>'13499',:selectedParentOptionId=>'',:addSelectValue=>'true',:os_username=>'user',:os_password=>'pass',:addValue=>'Barry the Badger',:add=>'Add'} 
url="http://jira/secure/admin/EditCustomFieldOptions!add.jspa" 
c.http_post(url,params) 
c.perform 

它看起来像它仍然使用相同的URL 我使用rest_client尝试过,但似乎与饼干被行为不端,我确实需要等上面的Atlassian的令牌(所以它不要求用户名/密码) 有没有人有任何想法的标题 - 或有什么更好的机制,有可能是这样的建议 - 或者更好的 - 我做了什么错;) 干杯 斯科特

+0

Jira建议通过SSL使用HTTP基本身份验证。你可以试试吗? – joelparkerhenderson 2012-04-03 05:33:53

+0

嗨乔尔 - 我搞砸了一些 - 意识到我在cURL构建的初始阶段做了错误 - 因为我需要手动验证websudo页面(这是一个痛苦 - 但它看起来像你只有每会话一次) 它看起来像我需要重写我的参数,因为它看起来像selectedParentOptionId需要是两个其他变量的容器 - 不知道。我需要多花一点时间玩。 我想我几乎已经破解了 – Scott 2012-04-03 20:27:18

回答

1

排序它 感动周围的一切,并有明确设置enable_cookies(这是一个有点坚果)

c = Curl::Easy.new 
#set first url 
c.url = dashboard 
#c.verbose = true 
c.http_auth_types = :basic 
c.username = username 
c.password = password 
c.enable_cookies = true 
c.headers="X-Atlassian-Token: no-check" 
#perform login to first link 
c.perform 
#puts c.cookies 
#prepare url to access websudo 
c.url=websudo 
c.verbose = true 
#set password for websudo form 
params={:webSudoPassword=>password}.to_query 
#set post 
c.http_post(c.url,params) 
#prepare all variables for creating new custom field option 
params={:fieldConfigId=>cf_config:selectedParentOptionId=>'',:addSelectValue=>'true',:os_username=>username,:os_password=>password,:addValue=>cf_value,:add=>'Add'}.to_query 
c.url=addoption 
c.verbose = true 
c.http_post(c.url,params) 

作品一种享受,现在,跟着从Pass GET parameters with Ruby Curb的建议和使用ActiveSupport to_query