2012-04-03 45 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