`

Net::HTTP 使用方式

    博客分类:
  • http
阅读更多
在 UbiSunrsie 裡面介紹過的小小 Script 裡面有用到,就直接用範例來解釋一下使用方式。




GET
require 'net/http'
Net::HTTP.version_1_2
Net::HTTP.start('www.google.com.tw', 80) {|http|
response = http.get('/index.html')
puts response.body
}
基本上,Start一個 Net::HTTP Connection HOST,然後使用 http.get來抓取你要的頁面,最後用 response.body 印出來即可。

POST
require 'net/http'
Net::HTTP.version_1_2
url ='example.com'
action = '/cgi-bin/query'
Net::HTTP.start( url , 80 ) {|http|
response = http.post( action , 'var1=value1&var2=value2' )
response.body.each do |line|
puts line
end
}
稍微複雜一點的作法,除了 http.get 變成 http.post 之外,後面的 variable = value 的形式是採用 application/x-www-form-urlencoded 的形式傳遞出去的,大家應該都很熟悉。

如果不喜歡這樣,還有其他作法

require 'net/http'
require 'uri'
res = Net::HTTP.post_form(URI.parse('http://example.com'), {'var'=> 'value' , 'var2' => 'value2' })
res.body.each do |line|
puts line
end
end
好處是 value 傳遞是用 hash 方式來傳遞,比較 Ruby 化,壞處是比起 Net::HTTP.post_form ,我比較喜歡 http.post 這樣的形式。
分享到:
评论
1 楼 jerry 2008-08-15  
https可以作吗?

相关推荐

    WebApi 跨域问题解决方案:CORS

    例如,服务器可以在响应头中添加`Access-Control-Allow-Origin:http://localhost:8081`,表明允许来自http://localhost:8081的请求访问资源。 解决WebApi跨域问题的实践步骤如下: 1. 创建一个包含MVC项目(Web)...

    一文教会你:如何使用 HttpRunner v4.0 开展性能测试!

    在本文中,我们将深入探讨如何使用 HttpRunner v4.0 进行性能测试。HttpRunner 是一个强大的自动化测试框架,它允许用户在不修改现有接口测试用例的情况下,直接运行性能测试。对于初学者来说,这是一个非常友好的...

    Net-FTPSSL-0.04.tar.gz

    总的来说,NET::FTPSSL模块为Perl程序员提供了一种安全、便捷的方式,来处理需要加密传输的FTP任务。通过正确安装和使用这个模块,你可以确保你的文件传输过程是安全可靠的,避免了数据在传输过程中可能遭遇的风险。

    Qt:解决使用png图片时,报错libpng warning: iCCP: known incorrect sRGB profile的问题

    具体使用方法是将QImagePngHelper类集成到你的项目中,然后用它来替代默认的QImage读取方式。 总的来说,解决“libpng warning: iCCP: known incorrect sRGB profile”问题需要理解PNG图像的色彩管理以及Qt如何处理...

    boost::asio::serialport实现串口通信

    在IT领域,串口通信是一种基础且重要的通信方式,尤其在设备控制、嵌入式系统以及物联网(IoT)应用中。Boost库是C++的一个强大工具集,它提供了`boost::asio`模块,用于处理网络和底层I/O操作,包括串口通信。本篇...

    sftp源码sftp源码sftp源码

    本篇文章将深入探讨SFTP的工作原理、实现方式以及相关的源码分析。 ### SFTP工作原理 SFTP不是一个独立的协议,而是运行在SSH框架内的一个子系统。当用户通过SSH连接到远程服务器时,可以启动SFTP会话,提供文件...

    Net::Vypress::Chat-开源

    总的来说,Net::Vypress::Chat是Perl开发者构建聊天应用的一个实用工具,它提供了一种标准化的方式来实现Vypress Chat协议,使得在Perl环境中开发聊天应用变得更加便捷。通过学习和使用这个模块,开发者不仅可以提升...

    基于SerialPort控件的C++.Net winform串口数据发送与接收实例 数据接收两种方式:查询方式和事件方式

    在C++.NET WinForm开发中,使用SerialPort控件进行串口通信是常见的任务,尤其在设备控制、数据采集等领域。本实例详细介绍了如何利用SerialPort控件进行数据的发送和接收,包括查询方式和事件方式这两种数据接收...

    Android开发中使用的google定位的总结:主要有四种方式:有需要自行寻找对应的方式方法

    Android开发中使用的google定位的总结:主要有四种方式:有需要自行寻找对应的方式方法

    线程间通信方式3:消息传递方式

    - 但需要注意的是,如果消息涉及到共享资源,仍需使用互斥量或临界区来保护这些资源。 6. **性能与效率**: - 选择合适的线程间通信方式对于系统的性能和效率至关重要。消息传递能保持线程间的解耦,但过度的消息...

    按键检测代码,实现短按,长按,连续按下检测功能。全程通畅无阻塞。 详细说明见博客: http://t.csdn.cn/DP43e

    1.内容概要: 按键检测代码,实现短按,长按...适合STM32学习者,或者STM32从业人员,便于积累功能模块,了解无阻塞设计方式;掌握静态全局变量,全局变量使用方法 4. 其他说明: 详情见博客: http://t.csdn.cn/DP43e

    Linux应用技术:使用文本方式安装Linux.pptx

    使用文本方式安装RHEL6 输入linux 回车 图形方式安装 在启动界面,按ESC健 欢迎界面 测试光盘介质:跳过 使用方向键 选择语言:English 选择键盘类型:us 对硬盘初始化 选择时区 选中之后按F12键 输入管理员密码 Tab...

    windows下编译使用Net-SNMP

    - **下载地址**:http://sourceforge.net/projects/net-snmp/ - **当前最新版本**:5.6 - **x86 exe 版本**:如果仅需要安装而无需编译,可以选择下载预编译的 x86 exe 版本,如 net-snmp-5.5.0-1.x86.exe。 #### ...

    c++11 std::move() 的使用

    (左值、左值引用、右值、右值引用 参见:http://www.cnblogs.com/SZxiaochun/p/8017475.html) 通过std::move,可以避免不必要的拷贝操作。 std::move是为性能而生。 std::move是将对象的状态或者所有权从一个对象...

    基于规则“SunThu-00:02:00-00:03:00,Mon-16:59:00-20:00:00”时间范围检查(C语言)

    基于以上规则,使用C语言实现检查当前时间点是否在规则规定的时间段内,使用方式: ./time_range_check "SunThu|00:02:00-00:03:00,Mon|16:59:00-20:00:00,FriSun|00:02:00-23:30:59,Sun|15:59:00-20:00:00" 规则...

    打造节日气氛:使用CSS `:before` 和 `:after` 伪元素装饰圣诞树

    通过使用CSS的:before和:after伪元素,我们可以为圣诞树添加各种装饰,从而提升用户体验并增加节日气氛。这些伪元素提供了一种灵活的方式来添加装饰性的内容,而不需要修改HTML结构。通过添加彩灯、礼物和其他装饰,...

    C++ 容器大比拼:std::array与std::vector深度解析

    首先介绍容器在 C++ 编程中的重要地位以及它们出现的背景,阐述两者在内存布局、大小固定性、性能特点、元素访问方式等方面的关键区别。通过丰富的代码示例详细展示如何使用这两个容器进行常见的操作,如初始化、...

    C# 在WPF .net8.0框架中使用FontAwesome 6和IconFont图标字体

    1.3.1 使用方式一:局部引用 1.3.2 使用方式二:单个文件中全局引用 1.3.3 使用方式三:整个项目中全局引用 1.4 效果图 二、在WPF中使用IconFont图标字体 2.1 下载IconFont字体文件 2.2 在WPF中配置引用 2.2.1 引用...

    Qt加载OsgEarth的新方式osgQOpenGL简介

    Qt加载Osg的老方式是使用osg3.4以及以前的某些版本中提供的osgQt项目加载osg,不过这种方式,在3.6等新版本中不再支持,更改起来比较麻烦,由于osg::GraphicsContext类不再提供osg::GraphicsContext::...

    C++ 中 std::optional 与 std::expected 的深度辨析

    std::optional和std::expected都是 C++ 中非常有用的类型,它们在处理可能不存在的值以及错误情况时提供了更优雅和安全的方式。std::optional侧重于值的存在性,而std::expected侧重于错误信息的传递和处理。在实际...

Global site tag (gtag.js) - Google Analytics