【发布时间】:2013-05-13 21:07:07
【问题描述】:
我在使用 rt-client gem(link) 时遇到问题,因为它不断返回“需要 RT/4.0.8 401 凭据”。这个站点的 REST 接口正在工作,因为我有一些 perl 脚本目前正在以类似的方式使用它。
test.rb
#!/usr/bin/env ruby
require 'rt/client'
rt = RT_Client.new
id = rt.create( :Queue => "General",
:Subject => "Test",
:Requestor => "test@example.org",
:Text => "Ignore me"
)
.rtclientrc
server=http://example.org/
user=exampleuser
pass=examplepass
cookies=tmp
版本
Gem Version: rt-client-0.5.0
RT Version: 4.0.8
Ruby Version: 1.9.3p327
输出
Payload for new ticket:
------xYzZY492386xYzZY
Content-Disposition: form-data; name="content";
Queue: General
Subject: Test
Requestor: test@example.org
Text: Ignore me
id: ticket/new
------xYzZY492386xYzZY--
"RT/4.0.8 401 Credentials required\n"
当我在 test.rb 的底部执行“puts id.inspect”时,我看到了错误,因为没有创建票证。
这可能是处理 cookie 的问题吗?如果可能,我试图避免在 Net::HTTP 中编写自定义解决方案,但如果这仍然很麻烦,我会走这条路。
【问题讨论】:
-
我在使用 rt-client gem 时运气不佳,最终基于 httpclient =(
-
@maerics 我在 client.rb 的第 113 行发现了 gem 本身的问题。如果您查看生成的 cookie,它会在开头包含一个 [",因为代码拆分不正确。我计划在某个地方进行修复,因为我没有看到代码托管在 Github 上或任何地方