2012-04-03 40 views
0

私はリモートのJiraインスタンスのカスタムフィールドに投稿したいというかなり大きな配列の配列を持っているので、私はCurbでそれをやろうとしていますRuby(彼らのAPIはそれを許可していないので、SQLの下ではそれは少し危険です) 私は他の提案にもオープンしていますが、私の人生では、私の最初のGETリクエストは、その後、ポストそれはまだ私がrest_clientを使用して試した同じURL を使用しているように見えますパラメータとクッキーを設定するRuby Curb(Curl)の問題

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 

のパラメータと適切なヘッダを提供し、それは、クッキーと不正な動作しているようだ、と私する必要があります(これはユーザ名/パスワードを要求しません) 誰にも、これを行うためのより良い仕組みがあるかもしれないということについてのアイデアや提案がありますか? ;) 乾杯 スコット

+0

Jiraは、HTTP Basic AuthをSSL経由で使用することを推奨しています。それを試してもらえますか? – joelparkerhenderson

+0

こんにちはJoel - 私は幾分かこんでしまった - 私はcURL構築の初期段階で間違ったことを実現しました - Websudoページに対して手作業で認証する必要があります(これは痛みですが、セッションごとに1回) selectedParentOptionIdが2つの他の変数のコンテナである必要があるように見えるので、パラメータを書き直す必要があるようです。私はもう少し時間を過ごす必要があります。 私はほとんどそれが割れていると思う – Scott

答えて

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