`
RunUpwind
  • 浏览: 91963 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ruby Net::HTTP cheat sheet

阅读更多

转自:http://augustl.com/blog/2010/ruby_net_http_cheat_sheet

 

I always have to look up how to use Net::HTTP , and I never find what I’m looking for. Behold, a cheat sheet!

A basic request

require "net/https"
require "uri"

uri = URI.parse("http://google.com")
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
request.initialize_http_header({"User-Agent" => "My Ruby Script"})

response = http.request(request)
puts response.code
# => 301
puts response["location"] # All headers are lowercase
# => http://www.google.com/
 

URI

uri = URI.parse("http://mysite.com/some_api")
uri = URI.parse("https://mysite.com/thing?foo=bar")

# URI will also guess the correct port
URI.parse("http://foo.com").port # => 80
URI.parse("https://foo.com/").port # => 443

# Full reference
uri = URI.parse("http://foo.com/this/is/everything?query=params")
# p (uri.methods - Object.methods).sort
p uri.scheme        # => "http"
p uri.host          # => "foo.com"
p uri.port          # => 80
p uri.request_uri   # => "/this/is/everything?query=params"
p uri.path          # => "/this/is/everything"
p uri.query         # => "query=params"

# There are setters as well
uri.port = 8080
uri.host = "google.com"
uri.scheme = "ftp"
p uri.to_s
# => "ftp://google.com:8080/this/is/everything?query=param"
 

 

Everything else

http = Net::HTTP.new(uri.host, uri.port)
http.open_timeout = 3 # in seconds
http.read_timeout = 3 # in seconds

# The request.
request = Net::HTTP::Get.new(uri.request_uri)

# All the HTTP 1.1 methods are available.
Net::HTTP::Get
Net::HTTP::Post
Net::HTTP::Put
Net::HTTP::Delete
Net::HTTP::Head
Net::HTTP::Options

request.body = "Request body here."
request.initialize_http_header({"Accept" => "*/*"})
request.basic_auth("username", "password")

response = http.request(request)
response.body
response.status
response["header-here"] # All headers are lowercase
 

SSL

# Normal ssl
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

# SSL .pem certs
pem = File.read("/path/to/my.pem")
http.use_ssl = true
http.cert = OpenSSL::X509::Certificate.new(pem)
http.key = OpenSSL::PKey::RSA.new(pem)
http.verify_mode = OpenSSL::SSL::VERIFY_PEER

# Check for SSL dynamically. If your URI is https and you don't specify a
# port, the port will be 443, which is the correct SSL port.
http.use_ssl = (uri.port == 443)
 
分享到:
评论

相关推荐

    Ruby On Rails-Cheatsheet

    ### Ruby on Rails Cheat Sheet 本篇文章将从给定的文件中提炼出关于Ruby on Rails的重要知识点,主要包括命令、URL映射、命名规范、ERB标签、链接创建、数据库配置及查询、模型之间的关系等方面。 #### Ruby on ...

    ruby-openssl-cheat-sheet:用例的集合以及Ruby的OpenSSL绑定的示例

    这个"ruby-openssl-cheat-sheet"项目是为开发者提供了一系列实用的示例,帮助他们更好地理解和使用Ruby中的OpenSSL功能。 1. **加密与解密** - `OpenSSL::Cipher` 类是用于加密和解密的主要工具。你可以创建一个新...

    RJS Cheatsheet

    ### RJS Cheatsheet知识点详解 #### 一、RJS简介 RJS(Remote JavaScript Template)是Ruby on Rails框架中的一个特殊组件,用于在服务器端生成JavaScript代码,并将其发送到客户端执行,从而实现动态更新页面的...

    Web-CTF-Cheatsheet:Web CTF速查表:cat:

    Ruby元帅 Ruby YAML Java序列化 .NET序列化 SSTI / CSTI Flask / Jinja2 嫩枝/ Symfony 胸腺 AngularJS Vue.js Python 工具 SSRF 旁路 本地曝光 远程曝光 元数据 CRLF注射 指纹图 XXE 带外XXE 基于错误的...

    idiosyncratic-ruby.com:记录所有Ruby专业知识:gem_stone:︎

    例如,`File`模块用于文件操作,`Net::HTTP`用于HTTP请求,`JSON`用于解析和生成JSON数据。 Ruby的语法规则包括了类、继承、模块、变量、常量、运算符等多方面的内容。其中,Ruby的多重继承和模块混入机制使得代码...

    pon-jp-cheat-sheet:庞的日语速查表

    "pon-jp-cheat-sheet"项目提供了一种方便的方式来快速查找和理解日语中的常见术语,特别对于Ruby开发者来说,它能帮助他们在阅读或协作日本相关的代码时更加得心应手。 首先,我们来了解什么是"cheat sheet"。在...

    程序员或设计师能用上的91份速查表 cheat sheets

    程序员或设计师能用上的91份速查表,包括各种语言和技术。包括Actionscript Apache Ant ASP C C# C++ Delphi Java Javascript Perl PHP Python VB Ruby Scala LISP Matlab Mathematica Fortran CSS DOM Erlang Perl ...

    Ruby on Rail 基础知识 一张纸

    ### Ruby on Rails基础知识详解 #### 一、简介 在IT领域,Ruby on Rails(简称RoR或Rails)是一种流行的Web应用程序开发框架,基于Ruby语言。它遵循MVC(模型-视图-控制器)架构模式,使得开发高效且结构化。本篇文章旨在...

    Foundation5CheatSheet:Foundation-5 备忘单

    此外,它与许多流行的后端框架如 Ruby on Rails、WordPress、Drupal 等兼容,方便开发者集成到现有项目中。 总之,Foundation 5 作为一个强大而灵活的前端框架,为开发者提供了构建响应式网站的全面工具集。通过...

    dasheets:为 Dash 生成备忘单

    编写一个包含tmux.cheatsheet单数据的文件(此处为tmux.cheatsheet ),例如: cheatsheet do title 'tmux cheatsheet' short_name 'tmux' # Used for the filename of the docset introduction 'My *awesome* ...

    bacon-cheat-sheet:RubyMotion Bacon 规格备忘单

    RubyMotion Bacon 规格备忘单贾蒙·霍尔姆格伦RubyMotion附带的内置叉 ,这本身就是一个叉,小纯Ruby的RSpec克隆。 RubyMotion 的 Bacon 功能相当强大,但文档记录并不完整。 这是一个备忘单,可帮助您记住用于测试 ...

    rxswift-to-combine-cheatsheet:RxSwift到Apple的合并备忘单

    RxSwift合并备忘单 这是一份对苹果新的框架感兴趣的开发人员的。 它基于以下博客文章: : RxSwift 结合 部署目标 iOS 8.0以上 iOS 13.0以上 支持平台 iOS,macOS,tvOS,watchOS,Linux 适用于Mac的iOS,macOS,...

    shellver:反向外壳备忘单

    .:: Reverse Shell Cheat Sheet Tool ::. .:: cyber-warrior.org ::.#安装注意克隆存储库: git clone 然后进入里面: cd shellver /然后安装: python setup.py -i 重新安装python setup.py -r 运行shellver -h或...

    Ruby

    在控制台中docker-compose run --service-port --rm web以在调试模式下运行rails应用访问要调试的端点,以pry或byebug进入调试模式使用docker的Rails CHEATSHEET docker-compose run --rm web rails new ....

    cheat-sheets:使用reveal.js幻灯片的备忘单的集合

    【标题】:“cheat-sheets:使用reveal.js创建幻灯片的备忘单集合” 【描述】中的“备忘单幻灯片”指的是一个资源集合,它提供了关于使用reveal.js库制作幻灯片的快速参考指南。这个资源可能源于GitHub Learning Lab...

    RubyCheatSheet:熟悉 Ruby 的基本命令参考 ---Pure OOP!

    熟悉Ruby的基本命令参考-现代和近乎纯正的OOP! ◈◈ 可以在找到 PDF 格式的清单表,或,而下面是不规则的 html 格式。 此参考表是从系统的构建的。目录哈希值可变关键字参数玫瑰树班级修饰符: public, private, ...

    the_room_of_exercises:江湖小虾米的练功房

    gem 相关介绍Ruby-Rails-Resources Ruby and Rails,Web 开发从入门到提高各种相关资源和书籍豌豆荚文案风格指南terminal-mac-cheatsheet Mac terminal 快捷键chrome-cheatsheet Chrome 的快捷键alfred-workflows ...

    cheatsheets:Dash备忘单的集合

    短跑速查表 可以从“首选项”>“下载”>“备忘单”中安装的所有备忘单都可以在此存储库中找到。 您可以使用拉取请求修改它们或添加新的请求。 备忘单也可以从在线获得。 自己做 单是使用生成的。...

Global site tag (gtag.js) - Google Analytics