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