向外部服务器发送请求时出现问题,当令牌有“+”时,其他服务器无法识别请求。我认为这是一个编码问题(抱歉,我是铁杆的新手),但我不知道该怎么做。
这是我的代码
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)。
强制卷曲的任何想法::容易在另一件事中不转换“+”?
答案 0 :(得分:2)
在发送请求之前尝试uri编码@token。尝试'u'方法
>> u "HK+rKsYMTbs2fjN+pLfPIj5wcjZp3IVQWuK5jW0iN/wKfkVgsQAjQ5+A1RvUF1Lp0lgdf1M="
=> "HK%2BrKsYMTbs2fjN%2BpLfPIj5wcjZp3IVQWuK5jW0iN%2FwKfkVgsQAjQ5%2BA1RvUF1Lp0lgdf1M%3D"