0

在 Ruby 程序中,我的密码是 Base64 字符串,因此可以包含正斜杠。我使用该密码和用户名来执行 HTTP 请求

username = "User"
password = "/Base/64/With/Slashes"
requestUrl = "http://#{username}:#{password}@company.com"
response = RestClient.get(requestUrl)

因此,如果password碰巧包含正斜杠,它们将被解释为 URI 的端口,并且我将收到一条错误消息,指出我的 URI 无效。显然,里面的每个正斜杠都password必须替换为%2F.

我尝试使用URI.escape(),但它不影响正斜杠。

如何百分比转义 Base64 字符串以便结果可用于 HTTP 请求身份验证?

4

1 回答 1

1

@injekt 在评论中有正确的答案,但这里有一个稍微详细的版本作为答案:

CGI.escape()是完成该任务的合适工具。它的文档:

URL 编码一个字符串。

于 2012-07-13T09:05:35.080 回答