`

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)...

    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如何处理...

    Net::Vypress::Chat-开源

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

    BeeScan网络空间测绘工具的使用方式以及源码分析

    BeeScan网络空间测绘工具的使用方式以及源码分析 BeeScan是一款基于GO语言的网络空间资产探测工具,具有分布式节点扫描功能,从而大大增加了资产探测的效率。下面是BeeScan网络空间测绘工具的使用方式以及源码分析...

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

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

    perl的xml::simple解析文件

    Perl中的XML::Simple模块是Perl社区广泛使用的XML解析器,尤其适合处理小型或结构简单的XML文档。这个模块的名称虽然包含“Simple”,但它实际上提供了一种简洁的接口,用于将XML数据转换为Perl数据结构,反之亦然。...

    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。 #### ...

    基于规则“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" 规则...

    解决报错libpng waring:iccp:known incorrect srgb profile

    总结来说,“libpng warning: iccp: known incorrect sRGB profile”是一个提示图像色彩配置文件可能存在错误的警告,解决这个问题可以通过修复图像、代码处理、使用转换工具或调整库设置等方式。对于Qt开发者而言,...

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

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

    C++文件的使用

    只有当函数被调用时没有声明方式参数的情况下,默认值才会被采用。如果函数被调用时声明了任何参数,默认值将被完全改写,而不会与调用参数组合。 由 于对类ofstream, ifstream 和 fstream 的对象所进行的第一个操作...

    Excel使用技巧大全(超全)

    19. 创建帮助文件的快捷方式:可以使用快捷键 Alt+F11 创建帮助文件的快捷方式。 公式应用 20. 双击单元格某边移动选定单元格:可以使用快捷键双击单元格某边移动选定单元格。 21. 双击单元格某边选取单元格区域:...

    基于STM32F103的RS485通信(采用DMA方式发送数据,中断方式接收数据)

    功能:采用DMA方式发送数据,中断方式接收数据。注: 接收到指令之后,判断是否是相应指令而进行DMA数据发送。DMA:开启DMA,DMA发送完一帧数据后产生发送完成中断,在DMA发送完成中断中,开启USART接收中断(字节)...

    Micro:bit入门系列教程分享

    - **供电方式**:可通过USB或外部电池组供电。 #### 三、开发环境 Micro:bit支持多种编程环境,主要包括: - **MakeCode Editor**:在线编程环境,适合初学者。 - **Python编辑器**:支持Python语言编程。 - **...

    一个NodeJS和redis做的基于http协议的队列

    一个NodeJS和redis做的基于http协议使用的队列 做了点小修改 支持多个队列和post提交 原github地址:https: github com lnmp nodemq 使用方法: 在安装好redis和nodejs后 配置config js 执行: $ node index js 启动...

    CSerialPort类的使用方法详解

    - `CSerialException::GetErrorMessage`: 获取错误信息,支持自定义错误信息的获取方式。 ### 使用场景 CSerialPort类在工业自动化、设备控制、数据采集等领域有着广泛的应用。通过灵活运用其提供的各种功能,...

    Linux下Socket编程的端口问题 ( Bind(): Address already in use ) PDF版

    具体实现方式如下: ```c #include // 创建套接字 int sockfd = socket(AF_INET, SOCK_STREAM, 0); // 设置SO_REUSEADDR选项 int optval = 1; setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof...

    【大数据处理技术实践】期末考查题目:集群搭建、合并文件与数据统计可视化

    采用虚拟机的方式,先配置好Hadoop的主节点,然后通过克隆的方式创建Slave节点,实现3节点的HDFS集群 任务二: 实验一:使用任务一搭建的集群,编程实现合并文件MergeFile的功能: 将数据集trec06p\_sample中的...

Global site tag (gtag.js) - Google Analytics