草庐IT

Ruby HTTP 获取参数

如何通过ruby​​发送带参数的HTTPGET请求?我尝试了很多例子,但都失败了。 最佳答案 我知道这篇文章很旧,但是为了那些由谷歌带到这里的人,有一种更简单的方法可以以URL安全的方式对您的参数进行编码。我不确定为什么我没有在其他地方看到这个,因为该方法记录在Net::HTTP页面上。我已经看到Arsen7描述的方法也是其他几个问题的公认答案。在Net::HTTP中提到文档是URI.encode_www_form(params):#Letssaywehaveapathandparamsthatlooklikethis:path="

ruby - 如何使用 Net::HTTP 只读取正文的 x 个字节?

在读取网页正文时,Ruby的Net::HTTP方法似乎是全有或全无。例如,我如何读取正文的前100个字节?如果请求的文件不可用,我正在尝试从内容服务器读取内容服务器,该内容服务器会在响应正文中返回一条简短的错误消息。我需要阅读足够多的正文以确定文件是否存在。文件很大,所以我不想让整个body只是为了检查文件是否可用。 最佳答案 这是一个旧线程,但根据我的研究,如何在Ruby中通过HTTP只读取文件的一部分的问题仍然是一个大部分没有答案的问题。这是我通过猴子修补Net::HTTP得到的一个解决方案:require'net/http'#

ruby-on-rails - Ruby VCR gem 不断记录相同的请求

在我的cucumber支持目录中,我在vcr.rb中有以下内容:require'vcr'VCR.configuredo|c|c.cassette_library_dir='fixtures/vcr_cassettes'c.hook_into:webmockc.ignore_localhost=truec.default_cassette_options={record::new_episodes}end我正在对调用GoogleMapsAPI的城市名称进行地理编码。我正在尝试记录并stub这些请求,但它一直将相同的请求记录到同一个yml文件:-request:method:geturi:

ruby-on-rails - 助手设计 : could not find the `Warden::Proxy` instance on request environment

我尝试将Devise用于我的Rails应用程序。我可以注册并登录,但是当我转到其他页面“构建”时,出现以下错误:Devise::MissingWardeninHome#showDevisecouldnotfindtheWarden::Proxyinstanceonyourrequestenvironment.MakesurethatyourapplicationisloadingDeviseandWardenasexpectedandthattheWarden::Managermiddlewareispresentinyourmiddlewarestack.Ifyouareseeing

ruby-on-rails - Rails - 如何获取访问者的IP地址?

我需要将访问者的IP地址存储到我们的数据库中,这是我尝试这样做的方式:@ip=request.remote_ip@ip=request.env['REMOTE_ADDR']但在这两种情况下,@ip变量都存储了值127.0.0.1,即使我将应用程序部署到AmazonEC2实例也是如此。当我检查http://www.whatismyip.com/时,它将我的IP显示为109.175.XXX.X。那么为什么ruby变量总是显示127.0.0.1地址呢?如何获取真实IP?编辑:这是以下内容的输出:request.env['HTTP_X_FORWARDED_FOR']=>request.remo

ruby-on-rails - 在 Rails 记录器中包含参数/请求信息?

我正尝试在我的Rails日志中获取更多信息,特别是请求的URI或当前参数(如果可用)(我很感激它们不会总是如此)。但是我似乎做不到。这是我到目前为止所做的:#config/environments/production.rbconfig.logger=Logger.new(config.log_path)config.log_level=:errorconfig.logger.level=Logger::ERROR#config/environment.rbclassLoggerdefformat_message(level,time,progname,msg)"***********

#<Hash :0x2954fe8> 的 Ruby 未定义方法 `bytesize'

我有以下Ruby代码,用于沙盒模式下的跟踪网站:require"net/http"require"net/https"require"uri"xml=XMLuri=URI('https://cig.dhl.de/services/sandbox/rest/sendungsverfolgung')nhttp=Net::HTTP.new(uri.host,uri.port)nhttp.use_ssl=truenhttp.verify_mode=OpenSSL::SSL::VERIFY_NONErequest=Net::HTTP::Get.new(uri)request.basic_auth

ruby-on-rails - rails : switch connection on each request but keep a connection pool

在我们的Rails应用程序中,我们需要根据请求的子域使用不同的数据库(每个国家/地区使用不同的数据库)。现在我们正在做类似于thisquestion中推荐的事情.也就是说,在每个请求上调用ActiveRecord::Base.establish_connection。但是itseemsActiveRecord::Base.establish_connection删除当前连接池并在每次调用时建立一个新连接。我做了这个快速基准测试,看看每次调用establish_connection和已经建立连接之间是否有任何显着差异:require'benchmark/ips'$config=Rails

ruby - 是否有带有响应缓存的 Ruby http 客户端库?

是否有一个Rubyhttp客户端库,其中响应由ETag自动缓存,并且If-Non-Matchheader应用于以前使用的URL上的请求? 最佳答案 您可能需要查看“RubyHTTPclientsfeatures”列表(2015年1月的存档版本)以获得完整的概述。 关于ruby-是否有带有响应缓存的Rubyhttp客户端库?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/61049

ruby - 加载网页时 : "undefined method ` request_uri' for #"

我正在尝试使用Ruby通过HTTP加载网页并检查其状态代码是什么。我的代码如下所示:require"net/http"@r=Net::HTTP.get_response(URI.parse(myURL))return@r.code但是,对于某些URL(主要是指向奇怪的东西,例如不会给出正确响应的Web计数器),我得到了一个undefinedmethodrequest_urifor#异常。我已经将它追溯到http.rb的第380行(我正在运行Ruby1.8),它说:defHTTP.get_response(uri_or_host,path=nil,port=nil,&block)ifpa