【发布时间】:2009-09-17 18:33:33
【问题描述】:
我有一个很长的字符串,我需要传入一个 URL,比如 10,000 个字符。任何人都知道将其缩短到 2,000 个字符以下的好方法,然后在服务器上以某种方式获取原始字符?
这是 Objective-C 与 Ruby 的对话,但这无关紧要。
【问题讨论】:
-
我不确定发送 10k 字符 URL 的优点,但如果有办法将 10k 字符转换为
我有一个很长的字符串,我需要传入一个 URL,比如 10,000 个字符。任何人都知道将其缩短到 2,000 个字符以下的好方法,然后在服务器上以某种方式获取原始字符?
这是 Objective-C 与 Ruby 的对话,但这无关紧要。
【问题讨论】:
你能发布数据吗? 如果您使用 GET,则 url 的最大长度约为 4000 个字符。如果你发布它,你没有任何限制(除了超时内存等)
This article 谈论从objective-c 发帖
【讨论】:
您确定必须将其作为 URL 传递吗?也许 POST-Data 或 Session 会更合适?否则,您可以将字符串存储在数据库中,并将插入记录的键作为 URL 参数返回。如果这是一个安全问题(如果它是整数键,人们可以更改数字),您可以创建一个 UUID 作为键。
【讨论】:
将其存储在数据库中,然后只需在 url 中传递字符串的 id。
【讨论】:
您可以尝试通过Base64 运行它。如果保证字符串只包含可能字符的子集——例如,[a-zA-Z0-9]——则可以通过将它们转换为唯一的序数并使用更高的基本编码来进一步缩短它。
但使用 POST 可能会更容易。
【讨论】:
好吧,压缩它并Base64 编码结果。如果字符串具有非常特定的格式,自定义编码甚至可以产生更好的压缩。可以举个例子吗?
【讨论】:
我会将此信息持久化到数据库(或任何其他持久性源),然后在 URL 中传递对它的引用。
源和目标都需要访问数据库,但这在大多数情况下都不是问题。
【讨论】: