gpt4 book ai didi

swift - 安全地发送 base64 编码的字符串作为查询参数

转载 作者:行者123 更新时间:2023-11-28 12:13:56 25 4
gpt4 key购买 nike

在我的应用中,我需要向服务器发送一个 base64 编码的字符串作为查询参数,例如。

&data=AwGZnyx+JUi0PFJoyYSEDpgtlrxP(cut...)==

问题是,当我的字符串中没有加号时,一切正常:另一方面,每次有加号时,服务器代码都无法正常运行。

我注意到有转义函数(例如 addingPercentEncoding),但它们不适用于加号。

除了“手动”删除所有加号(例如使用正则表达式),我还能做些什么吗?

目前,如果我使用:

string.replacingOccurrences(of: "+", with: "%2B")

最佳答案

服务器可能将 + 符号解释为空格,因为它经常在查询参数中用作空格的替代品。 addPercentEncoding 不会帮助您,因为它只翻译非 ASCII 字符。

您需要手动将 + 替换为 %2B

....虽然

NSString 有一个 addPercentEncoding 版本,它也将 CharacterSet 作为参数。因此,您可以使用 init(charactersIn:) 创建一个字符集,其中包含除 + 之外的所有 base64 字符,即

let safeChars = Characterset(charactersIn: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrtuvwxyz0123456789/=")

关于swift - 安全地发送 base64 编码的字符串作为查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47528035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com