草庐IT

ruby - open-uri 没有将 http 重定向到 https

我正在使用Hpricot和OpenURI来解析网页并从中提取URL。当我收到类似“http:rapidshare.com”的链接时,它不会重定向到https。这是我得到的错误:/home/leonidus/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/open-uri.rb:216:in`open_loop':redirectionforbidden:http:.................=>https:...........................我尝试使用异常处理程序OPENURI::HTTPREDIRECT但我又遇到了同样的错

ruby - 为什么 URI.escape 不转义单引号?

为什么URI.escape不转义单引号?URI.escape("foo'bar\"baz")=>"foo'bar%22%20baz" 最佳答案 出于同样的原因,它不会转义?或/或:等等。URI.escape()仅转义不能在URL中使用的字符根本,而不转义具有特殊含义的字符。您要找的是CGI.escape():require"cgi"CGI.escape("foo'bar\"baz")=>"foo%27bar%22+baz" 关于ruby-为什么URI.escape不转义单引号?,我们在S

ruby-on-rails - 如何防止管道字符在 Rails 3/Ruby 1.9.2 中导致错误的 URI 错误?

在我的应用中实现OAuth2时,我需要处理如下URI:http://localhost:3000/sessions/create/?code=lorem|ipsum不确定这是Rails3还是Ruby1.9.2的问题(可能是URI.parse),但无论如何,WEBrick都会启动ErrorbadURI。有人知道解决方法吗?谢谢。 最佳答案 我最近遇到了同样的需求(和问题)。OnRails3和Ruby1.9.2。这对我们的暂存/生产环境(nginx)来说不是问题,但我很想知道WEBrick的问题所在。原来问题出在URI::Parser.

ruby-on-rails - URI::InvalidURIError: 错误的 URI(不是 URI?)测试 Rails Controller

我得到URI::InvalidURIError测试RailsHomeController:require'test_helper'classHomeControllerTest得到以下错误:EError:HomeControllerTest#test_should_get_index:URI::InvalidURIError:badURI(isnotURI?):http://www.example.com:80indextest/controllers/home_controller_test.rb:7:in`blockin'堆栈如下:Rails5.0.0.beta3minitest(

ruby open-uri打开方法丢失文件扩展名打开图片

我正在使用ruby​​1.9.2以及Rails3.1.4和Paperclip2.4.5。我的问题是尝试从URI保存回形针附件会丢失文件扩展名并保存文件而不会导致诸如需要扩展名的fancybox之类的问题。一些示例代码:uri="http://featherfiles.aviary.com/2012-06-13/bbe5f0de1/0c5a672b88ea47ecb4631ac173e27430.png"open(uri)#=>#因为临时文件上没有扩展名回形针正在保存文件而没有导致问题。有人遇到过这个问题吗?我已经看到关于使用回形针存储来自URI的图像的多个答案,但似乎没有一个解决我们正

ruby - Ruby 中的 URI.escape 和 URI.encode 有什么区别?

我试图找出URI.escape和URI.encode之间的区别ruby。两者都没有按照我的意愿进行,即对URL进行完全编码。例如,我希望http://my.web.com为http%3A%2F%2Fmy%2Eweb%2Ecom 最佳答案 没有区别。在Ruby1.9.3中encodeissimplyanaliasforescape.[编辑]请注意,这些方法允许对字符的“不安全”描述符进行编码:URI.encode('http://my.web.com',/\W/)#=>"http%3A%2F%2Fmy%2Eweb%2Ecom"谢谢@m

Ruby: URI::InvalidURIError(URI 只能是 ascii

require'uri'uri=URI.parse'http://dxczjjuegupb.cloudfront.net/wp-content/uploads/2017/10/Оуэн-Мэтьюс.jpg'浏览器没有问题http://dxczjjuegupb.cloudfront.net/wp-content/uploads/2017/10/Оуэн-Мэтьюс.jpg所以我问自己这个ruby类是否有点过时了?我应该完全放弃它还是做一些错误处理…… 最佳答案 我通过问自己这个问题得到了答案:beginuri=URI.parse(

ruby - 如何在 Ruby 中将方案设置为 URI 对象

我正在尝试从用户输入中解析URI。我假设有些用户不会将方案放在他们的URI中,我想默认为“http”。以下代码无效:require'uri'uri_to_check=URI::parse("www.google.com")uri_to_check.scheme="http"unlessuri_to_check.schemeputsuri_to_check.to_s我希望看到“http://www.google.com”,但我得到的是“http:www.google.com”。甚至可以这样做吗?如果是这样,我错过了什么?有更好的方法吗? 最佳答案

ruby - 如何使用 httparty 切换 base_uri

我正在尝试将参数传递给login方法,我想根据该参数切换基本uri。像这样:classManagementdbincludeHTTPartydefself.login(game_name)casegame_namewhen"game1"self.base_uri="http://game1"when"game2"self.base_uri="http://game2"when"game3"self.base_uri="http://game3"endresponse=self.get("/login")ifresponse.success?@authToken=response["au

Ruby:检查 URI 是否为 HTTPS?

我想检查URI是否需要SSL身份验证:url=URI.parse("http://www.google.com")#[somecode]ifurl.instance_of?URI::HTTPShttp.use_ssl=truehttp.verify_mode=OpenSSL::SSL::VERIFY_NONEend但是,那几行抛出以下错误../usr/lib/ruby/1.8/uri/common.rb:436:in`split':badURI(isnotURI?):HTTPS(URI::InvalidURIError)from/usr/lib/ruby/1.8/uri/common.