草庐IT

合并http

全部标签

ruby - 检查 Ruby HTTP 响应是否成功

如何正确检查来自Net::HTTP::Get(例如)的响应是否“成功”(即2xx返回码)?令人遗憾的是,文档似乎对这个简单的问题保持沉默。我有:response=Net::HTTP.new(host,port).requestmy_get_request#detailsnotimportant经过一系列谷歌搜索和近乎随机的输入,我终于确定这是可行的:response.class这真的是规范的方式吗? 最佳答案 对于Net::HTTP,是的,检查响应对象的类是这样做的方法。使用kind_of?(也称为is_a?)更清晰一些(但在功能上

ruby-on-rails - 为什么 Ruby on Rails 使用 http ://0. 0.0.0 :3000 instead of http://localhost:3000?

当我尝试按照官方“入门”RubyonRails教程进行操作时,很快就出错了。基本上它说:…navigatetohttp://localhost:3000.YoushouldseeRails’defaultinformationpage.但是当我按照说明操作时,我得到了=>Rails2.3.4applicationstartingonhttp://0.0.0.0:3000在尝试了这两个地址之后,我知道它们指向同一件事,但是有人可以向我解释为什么RubyonRails使用http://0.0.0.0:3000而不是http://localhost:3000?有没有办法让WEBrick服务器

ruby - 如何合并散列数组以获取值数组的散列

这与TurningaHashofArraysintoanArrayofHashesinRuby相反.优雅地和/或高效地将一个散列数组转换为一个散列,其中的值是所有值的数组:hs=[{a:1,b:2},{a:3,c:4},{b:5,d:6}]collect_values(hs)#=>{:a=>[1,3],:b=>[2,5],:c=>[4],:d=>[6]}这段简洁的代码几乎可以工作,但在没有重复项时无法创建数组:defcollect_values(hashes)hashes.inject({}){|a,b|a.merge(b){|_,x,y|[*x,*y]}}endcollect_val

ruby-on-rails - 何时(如果)合并 ActiveRecord 迁移?

当我在我的应用程序*(s)上进行迭代时,我积累了迁移。截至目前,共有48个此类文件,跨越大约24个月的事件。我正在考虑采用我当前的schema.rb并将其作为基线。我也在考虑删除(当然,受源代码控制)现有的迁移并从我当前的模式创建一个漂亮的Shiny的新单一迁移?迁移倾向于使用符号,但rakedb:schema:dump使用字符串:我应该关心吗?这看起来合理吗?如果是这样,在什么样的时间间隔进行这样的练习才有意义?如果不是,为什么不呢?我是否错过了一些(佣金?)可以为我完成的任务?*在我的例子中,所有应用程序都是基于Rails的,但是任何使用ActiveRecord迁移的应用程序似乎都

ruby - 处理来自 Net::HTTP 的异常的最佳方法是什么?

从Net::HTTP中拯救异常的最佳方法是什么?抛出的异常在Ruby的socket.c中有描述。,比如Errno::ETIMEDOUT,Errno::ECONNRESET,和Errno::ECONNREFUSED.所有这些的基类是SystemCallError,但写出如下代码感觉很奇怪,因为SystemCallError似乎距离制作HTTP还很遥远调用:beginresponse=Net::HTTP.get_response(uri)response.code=="200"rescueSystemCallErrorfalseend只有我吗?除了修复Net::HTTP之外,还有更好的方法

ruby - 如何在 ruby​​ net/http 中实现 cookie 支持?

我想为使用net/http浏览网页的ruby​​类添加cookie支持。Cookie必须存储在文件中才能在脚本结束后继续存在。当然我可以阅读规范并编写某种处理程序,使用某种cookie.txt格式等等,但这似乎意味着重新发明轮子。有没有更好的方法来完成这个任务?也许是某种cooiejar类来处理cookie? 最佳答案 如果您的服务器返回并需要多个cookie,则接受的答案将不起作用。例如,如果服务器返回一组FedAuth[n]cookie,就会发生这种情况。如果这对您有影响,您可能需要考虑使用以下内容:http=Net::HTTP

Ruby:合并嵌套哈希

我想合并一个嵌套的散列。a={:book=>[{:title=>"Hamlet",:author=>"WilliamShakespeare"}]}b={:book=>[{:title=>"PrideandPrejudice",:author=>"JaneAusten"}]}我希望合并是:{:book=>[{:title=>"Hamlet",:author=>"WilliamShakespeare"},{:title=>"PrideandPrejudice",:author=>"JaneAusten"}]}实现这个的嵌套方法是什么? 最佳答案

ruby - 如何合并 Ruby 哈希

如何合并这两个哈希:{:car=>{:color=>"red"}}{:car=>{:speed=>"100mph"}}得到:{:car=>{:color=>"red",:speed=>"100mph"}} 最佳答案 有一个Hash#merge方法:ruby-1.9.2>a={:car=>{:color=>"red"}}=>{:car=>{:color=>"red"}}ruby-1.9.2>b={:car=>{:speed=>"100mph"}}=>{:car=>{:speed=>"100mph"}}ruby-1.9.2>a.merg

ruby-on-rails - 如何在 Rails Controller 中返回 HTTP 204

这看起来很基础,但我是Ruby/Rails初学者。我只需要在Controller中返回HTTP204。会respond_todo|format|format.htmlend返回204? 最佳答案 head:no_content使用Rails3.2.x、4.x测试。它会导致Controller方法以204NoContentHTTP状态代码进行响应。在名为foobar的Controller方法中使用它的示例:deffoobarhead:no_contentend 关于ruby-on-rail

ruby - 使用 Net::HTTP.get 获取 https url

我正在尝试将Net::HTTP.get()用于httpsURL:@data=Net::HTTP.get(uri,Net::HTTP.https_default_port())但是,当我尝试打印结果时得到以下结果:can'tconvertURI::HTTPSintoString这是怎么回事?我正在使用Ruby1.8.7(OSX) 最佳答案 原答案:uri=URI.parse("https://example.com/some/path")http=Net::HTTP.new(uri.host,uri.port)http.use_ssl