一个好的开始是使用 curl 进行类似的调用:
curl -D- -u user:password -X PUT --data @request.txt -H "Content-Type: application/json" http://jira-server:port/rest/api/2/issue/DEV-XXXXX
(替换用户、密码、jira-server 和端口)
文件 request.txt 应该包含 json 请求:
{"fields":{"customfield_11530":"a0x40000000PHet"}}
在我的情况下,但是 jira-ruby gem 提出了一个不同的请求:它使用了 /rest/api/2/issue/22241 之类的路径,导致正文消息出现 400 Bad Request 错误
"Field 'customfield_11530' cannot be set. It is not on the appropriate screen, or unknown."
为了修复 gem,我在 gem 的 base.rb 中更改了这些行
417 if @attrs['self']
418 @attrs['self'].sub(@client.options[:site],'')
419 elsif key_value
420 self.class.singular_path(client, key_value.to_s, prefix)
对此:
417 if key_value
418 self.class.singular_path(client, key_value.to_s, prefix)
419 elsif @attrs['self']
420 @attrs['self'].sub(@client.options[:site],'')
(在我的机器上“/usr/local/lib/ruby/gems/2.0.0/gems/jira-ruby-0.1.2/lib/jira”)
那成功了。希望它也适用于你。您可以在这里查看维护者的 JIRA 系统中的问题状态:http: //jira.sumoheavylabs.com/browse/JR-3。
如果您想在代码中获取更多错误信息,请执行以下操作:
begin
issue.save!( updateHash )
rescue JIRA::HTTPError => e
puts e.response.code
puts e.response.message
puts e.response.body
end