如何使用Ruby中的参数发出HTTP GET请求?

当你POST岁时,这很容易做到:

  require 'net/http'
  require 'uri'

  HTTP.post_form URI.parse('http://www.example.com/search.cgi'),
                 { "q" => "ruby", "max" => "50" }

但我看不到用'net/http'作为散列传递GET个参数的方法.

推荐答案

使用以下方法:

require 'net/http'
require 'cgi'

def http_get(domain,path,params)
    return Net::HTTP.get(domain, "#{path}?".concat(params.collect { |k,v| "#{k}=#{CGI::escape(v.to_s)}" }.join('&'))) if not params.nil?
    return Net::HTTP.get(domain, path)
end

params = {:q => "ruby", :max => 50}
print http_get("www.example.com", "/search.cgi", params)

Ruby-on-rails相关问答推荐

仅当未在带有ENV[';Dyno';]的Heroku问题上运行时才初始化Sidekiq Cron

错误AESGCMOpen获取密码:消息身份验证失败:Golang解密GCM

Rails 7 中的预编译

Rails/Rspec中的测试文章创建

为 has_attached_file 等活动记录属性创建类方法

为什么 Image_tag 产生images/...而不是assets/....?

Rails 4 中的 null_session 和 reset_session 有什么区别?

attr_accessible(*attributes) 和 attr_protected(*attributes) 有什么区别?

Ruby 地理定位Ruby /插件

如何在 rails 中指定和验证枚举?

耙路由错误缺少:路由定义上的操作键

将 cookie 会话存储添加回 Rails API 应用程序

使用 Ruby on Rails 从原始 IP 地址获取用户国家名称

测试:如何在不损失速度的情况下专注于行为而不是执行?

如何在同一个 Rails 控制器操作中处理多个 HTTP 方法

Ruby 根据属性在数组中查找并返回对象

你如何undo撤消Bundle 安装 --without

Ruby on Rails:如何为 postgresql 编辑 database.yml?

向 Rails 模型添加外键

在 GIT 中处理 Rails db/schema.rb 文件的正确方法是什么?