草庐IT

Ruby 1.9.3 向 URI.escape 添加不安全字符

我正在使用Sinatra并使用get'/foo/:bar'{}方法从url获取参数。不幸的是,:bar中的值可能包含像/这样导致404的讨厌的东西,因为没有路由匹配/foo/:bar/baz/.我使用URI.escape来转义URL参数,但它认为/有效是一个有效字符。如前所述here这是因为要检查的默认Regexp不区分不安全字符和保留字符。我想改变这个并这样做:URI.escape("foo__&_3_#_/_+_%_bar",Regexp.union(URI::REGEXP::UNSAFE,'/'))只是为了测试它。URI::REGEXP::UNSAFE是根据Ruby1.9.3Do

ruby-on-rails - URI 编码不起作用

在Rails应用程序上,我需要解析urisa='somefilename.txt'URI(URI.encode(a))#worksb='somefilenamewith:coloninit.txt'URI(URI.encode(b))#failsURI::InvalidURIError:badURI(isnotURI?):如何安全地将文件名传递给包含特殊字符的URI?为什么编码对冒号不起作用? 最佳答案 URI.escape(或encode)采用可选的第二个参数。它是一个正则表达式,匹配所有应该转义的符号。要转义您可以使用的所有非单

ruby-on-rails - 我如何解决 "bad argument (expected URI object or URI string)"? Ruby on Rails,Michael Hartl 教程

我正在关注RubyonRailsTutorial作者:MichaelHartl。我到达了Chapter11.37但我的测试失败了。我收到以下错误:Failure/Error:xhr:post,:create,relationship:{followed_id:other_user.id}ArgumentError:badargument(expectedURIobjectorURIstring)我是RubyonRails的新手,所以我真的不知道出了什么问题。有人可以帮助解决此错误吗?controllers/relationships_controller.rb:classRelatio

ruby - 是否可以让 open-uri 维护扩展?

在Ruby中,当你用open-uri打开一个远程文件时,文件对象最终有一个类似这样的路径:/tmp/20120329-2113-1-0762/open-uri20120329-1-7dit2c。我有一些文件处理取决于存在的文件的扩展名。使用open-uri时,有没有办法保留扩展名甚至强制扩展名?这是一个简短的交互,展示了当您使用open-uri打开一个远程文件并获取它的路径时会发生什么。该路径看起来与远程URL完全不同,因为它是为该对象生成的临时唯一文件,但问题是缺少扩展名:>require"open-uri"=>true>f=open("http://cdn.sstatic.net/

ruby-on-rails - Open-Uri 对外服务失败如何处理?

在我的Rails应用程序中,我试图从外部服务获取一些货币汇率并将它们存储在缓存中:require'open-uri'moduleExchangeRatedefself.allRails.cache.fetch("exchange_rates",:expires_in=>24.hours){load_all}endprivatedefself.load_allhashes={}CURRENCIES.eachdo|currency|beginhash=JSON.parse(open(URI("http://api.fixer.io/latest?base=#{currency}")).re

DataMapper "DataObjects::URI.new with arguments is deprecated..."的 Ruby 问题

当我在datamapper1.1.0中初始化一个字符串时DataMapper.setup(:default,"sqlite://#{Dir.pwd}/base.db")我在数据映射器中收到以下错误:DataObjects::URI.newwithargumentsisdeprecated,useaHashofURIcomponents(C:/Ruby192/lib/ruby/gems/1.9.1/gems/dm-do-adapter-1.1.0/lib/dm-do-adapter/adapter.rb:231:in`new')这是为什么? 最佳答案

ruby - URI Extract 在冒号处转义,有什么办法可以避免这种情况?

我在下面有以下函数,通常会吐出一个URL,例如path.com/p/12345。有时,当一条推文在推文前包含一个冒号时,例如RT:Somethingpath.com/p/123函数将返回:personName:path.com/p/12345我的功能:$a=10defgrabTweets()tweet=Twitter.search("[pic]"+"path.com/p/",:rpp=>$a,:result_type=>"recent").mapdo|status|tweet="#{status.text}"#class=stringurls=URI::extract(tweet)#r

ruby - ERROR URI::InvalidURIError: Bad URI(is not URI?) 因为浏览器

我的一些网址上有一些特殊字符。例如:http://blabla.com/title/?t=burası当我从其他页面提供指向该页面的链接时,我使用:URI.encode(s)产生这个链接:/title/?t=buras%C4%B1虽然在此之前一切正常,但我在页面上还有另一个具有编码url的表单。但是,当用户访问/title/?t=buras%C4%B1时,浏览器往往会解码我编码的url,并将url转换为/title/?t=burası。问题从这里开始,因为当用户尝试从“burası”页面上的表单发送内容时,sinatra给出错误:ERRORURI::InvalidURIError:错误

ruby - 一种以宽容的方式在 Ruby 中标准化 URI/URL 的方法

我正在尝试找到一种方法来从用户那里获取URI/URL字符串并确定有效的规范形式(如果资源无效则失败)。同时,它还应该验证该URL是否存在。因此,我们正在检查有效的“语法”和是否存在。例如,像google.com这样的字符串应该变成http://www.google.com,而像google.com这样的字符串/insights应该变成http://www.google.com/insights。像http://thiswebsitedoesntexistatall.com这样的字符串应该返回某种错误或异常。我相信部分解决方案可能会调用HTTPget_response()方法并遵循重定向

带有动态网站的 Ruby Open-URI

我正在尝试使用open-uri获取网站的html页面。然而,问题是网站需要几秒钟的时间来加载它才能正确地拥有正确的代码。我现在拥有的是:require'open-uri'html=open('http://hiddencode.me/dribbbucket/embed.html?key=MY_API_KEY&bucket=56024-Glassboard&delay=5000')response=html.readputsresponse如果我现在运行它,我会得到:Loading..但是,网站需要在打开之前先正确加载才能获得正确的响应。任何想法如何在ruby中做到这一点?如果您不擅长r