转自: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 Cheat Sheet 本篇文章将从给定的文件中提炼出关于Ruby on Rails的重要知识点,主要包括命令、URL映射、命名规范、ERB标签、链接创建、数据库配置及查询、模型之间的关系等方面。 #### Ruby on ...
这个"ruby-openssl-cheat-sheet"项目是为开发者提供了一系列实用的示例,帮助他们更好地理解和使用Ruby中的OpenSSL功能。 1. **加密与解密** - `OpenSSL::Cipher` 类是用于加密和解密的主要工具。你可以创建一个新...
### RJS Cheatsheet知识点详解 #### 一、RJS简介 RJS(Remote JavaScript Template)是Ruby on Rails框架中的一个特殊组件,用于在服务器端生成JavaScript代码,并将其发送到客户端执行,从而实现动态更新页面的...
Ruby元帅 Ruby YAML Java序列化 .NET序列化 SSTI / CSTI Flask / Jinja2 嫩枝/ Symfony 胸腺 AngularJS Vue.js Python 工具 SSRF 旁路 本地曝光 远程曝光 元数据 CRLF注射 指纹图 XXE 带外XXE 基于错误的...
例如,`File`模块用于文件操作,`Net::HTTP`用于HTTP请求,`JSON`用于解析和生成JSON数据。 Ruby的语法规则包括了类、继承、模块、变量、常量、运算符等多方面的内容。其中,Ruby的多重继承和模块混入机制使得代码...
"pon-jp-cheat-sheet"项目提供了一种方便的方式来快速查找和理解日语中的常见术语,特别对于Ruby开发者来说,它能帮助他们在阅读或协作日本相关的代码时更加得心应手。 首先,我们来了解什么是"cheat sheet"。在...
程序员或设计师能用上的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 Rails基础知识详解 #### 一、简介 在IT领域,Ruby on Rails(简称RoR或Rails)是一种流行的Web应用程序开发框架,基于Ruby语言。它遵循MVC(模型-视图-控制器)架构模式,使得开发高效且结构化。本篇文章旨在...
此外,它与许多流行的后端框架如 Ruby on Rails、WordPress、Drupal 等兼容,方便开发者集成到现有项目中。 总之,Foundation 5 作为一个强大而灵活的前端框架,为开发者提供了构建响应式网站的全面工具集。通过...
编写一个包含tmux.cheatsheet单数据的文件(此处为tmux.cheatsheet ),例如: cheatsheet do title 'tmux cheatsheet' short_name 'tmux' # Used for the filename of the docset introduction 'My *awesome* ...
RubyMotion Bacon 规格备忘单贾蒙·霍尔姆格伦RubyMotion附带的内置叉 ,这本身就是一个叉,小纯Ruby的RSpec克隆。 RubyMotion 的 Bacon 功能相当强大,但文档记录并不完整。 这是一个备忘单,可帮助您记住用于测试 ...
RxSwift合并备忘单 这是一份对苹果新的框架感兴趣的开发人员的。 它基于以下博客文章: : RxSwift 结合 部署目标 iOS 8.0以上 iOS 13.0以上 支持平台 iOS,macOS,tvOS,watchOS,Linux 适用于Mac的iOS,macOS,...
.:: Reverse Shell Cheat Sheet Tool ::. .:: cyber-warrior.org ::.#安装注意克隆存储库: git clone 然后进入里面: cd shellver /然后安装: python setup.py -i 重新安装python setup.py -r 运行shellver -h或...
在控制台中docker-compose run --service-port --rm web以在调试模式下运行rails应用访问要调试的端点,以pry或byebug进入调试模式使用docker的Rails CHEATSHEET docker-compose run --rm web rails new ....
【标题】:“cheat-sheets:使用reveal.js创建幻灯片的备忘单集合” 【描述】中的“备忘单幻灯片”指的是一个资源集合,它提供了关于使用reveal.js库制作幻灯片的快速参考指南。这个资源可能源于GitHub Learning Lab...
熟悉Ruby的基本命令参考-现代和近乎纯正的OOP! ◈◈ 可以在找到 PDF 格式的清单表,或,而下面是不规则的 html 格式。 此参考表是从系统的构建的。目录哈希值可变关键字参数玫瑰树班级修饰符: public, private, ...
gem 相关介绍Ruby-Rails-Resources Ruby and Rails,Web 开发从入门到提高各种相关资源和书籍豌豆荚文案风格指南terminal-mac-cheatsheet Mac terminal 快捷键chrome-cheatsheet Chrome 的快捷键alfred-workflows ...
短跑速查表 可以从“首选项”>“下载”>“备忘单”中安装的所有备忘单都可以在此存储库中找到。 您可以使用拉取请求修改它们或添加新的请求。 备忘单也可以从在线获得。 自己做 单是使用生成的。...