草庐IT

MONGOLAB_URI

全部标签

ruby - 规范化 HTTP URI

我从Akamai的日志文件中获取URI,其中包含如下条目:/foo/jim/jam/foo/jim/jam?/foo/./jim/jam/foo/bar/../jim/jam/foo/jim/jam?autho=&file=jam我想根据规则将所有这些规范化为同一个条目:如果有查询字符串,去掉autho和file如果查询字符串为空,删除结尾的?../的目录条目应该被删除。/../的目录条目应该被删除。我本以为URIRuby的库将涵盖这一点,但是:它不提供任何解析部分查询字符串的机制。(并不是说这很难做到,也不是标准。)它不会删除尾随的?如果查询字符串为空。URI.parse('/foo

ruby-on-rails - 在 Rails 项目中要求 'open-uri' 是否安全?

我见过很多open-uri的例子,对于简单的事情来说它似乎非常棒。不过,要求它在全局范围内定义一个名为open的方法确实让我很困扰。这尤其令人不安,因为在Rails5控制台中四处寻找之后,似乎已经定义了一个名为open的方法:irb(main):001:0>openArgumentError:wrongnumberofarguments(given0,expected1..3)from(irb):1:in`initialize'from(irb):1:in`open'from(irb):1from/Users/ahamon/.gem/ruby/2.3.0/gems/railties-5

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:错误