在使用OpenURI打开(url)之前,如何对URL进行编码或“转义”?
我们使用OpenURI来打开一个远程url并返回xml:
getresult = open(url).read
问题是URL包含一些包含空格和其他字符的用户输入文本,包括“”,“&”,“?”等等,因此我们需要安全地转义该URL.使用Net :: HTTP时,我看到很多例子,但OpenURI尚未找到任何内容.
我们还需要能够避免在会话变量中收到的类似字符串,因此我们需要相互函数.
解决方法
Ruby拥有内置的
URI库,而
Addressable宝石,尤其是
Addressable::URI
我更喜欢Addressable :: URI.当您使用query_values =方法时,它非常全面,并为您处理编码.
我已经看到关于URI的一些讨论,通过一些成长的痛苦,所以我倾向于独自一人处理编码/转义,直到这些东西被整理出来:
> http://osdir.com/ml/ruby-core/2010-06/msg00324.html
> http://osdir.com/ml/lang-ruby-core/2009-06/msg00350.html
> http://osdir.com/ml/ruby-core/2011-06/msg00748.html