rails - curb:编码问题发送请求&带有“+”的标记

时间:2012-10-04 14:29:48

标签: ruby-on-rails encoding token curb

向外部服务器发送请求时出现问题,当令牌有“+”时,其他服务器无法识别请求。我认为这是一个编码问题(抱歉,我是铁杆的新手),但我不知道该怎么做。

这是我的代码

        req = Curl::Easy.new do |curl| 
        curl.url = "https://blabla.com/bla?token=#{@token}"
        curl.headers['Content-type'] = 'application/json'
    end
    req.perform
    puts req.body_str

当令牌类似于:S6ps1YSMC6xaRusfSH4aBg1RTm2 / U1u1ng / hZSmGGTGX12AcL // Q33ri7Wlkl1Vjg4j / zDM =

没关系,但是什么时候: HK + rKsYMTbs2fjN + pLfPIj5wcjZp3IVQWuK5jW0iN / wKfkVgsQAjQ5 + A1RvUF1Lp0lgdf1M =

回复是403(禁止)。

我在文档中搜索过,但我什么都没找到(https://github.com/taf2/curb)。

强制卷曲的任何想法::容易在另一件事中不转换“+”?

1 个答案:

答案 0 :(得分:2)

在发送请求之前尝试uri编码@token。尝试'u'方法

>> u "HK+rKsYMTbs2fjN+pLfPIj5wcjZp3IVQWuK5jW0iN/wKfkVgsQAjQ5+A1RvUF1Lp0lgdf1M="
=> "HK%2BrKsYMTbs2fjN%2BpLfPIj5wcjZp3IVQWuK5jW0iN%2FwKfkVgsQAjQ5%2BA1RvUF1Lp0lgdf1M%3D"