1

我在向外部服务器发送请求时遇到问题,当令牌带有“+”时,另一台服务器无法识别该请求。我认为这是编码的问题(对不起,我是 Rails 的新手),但我不知道该怎么做。

这是我的代码

        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)。

有什么想法可以强制 curl::easy 不将“+”转换为另一件事吗?

4

1 回答 1

2

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

>> u "HK+rKsYMTbs2fjN+pLfPIj5wcjZp3IVQWuK5jW0iN/wKfkVgsQAjQ5+A1RvUF1Lp0lgdf1M="
=> "HK%2BrKsYMTbs2fjN%2BpLfPIj5wcjZp3IVQWuK5jW0iN%2FwKfkVgsQAjQ5%2BA1RvUF1Lp0lgdf1M%3D"
于 2012-10-04T15:06:17.677 回答