`

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可以作吗?

相关推荐

    Poco:TCPServer框架

    总结起来,Poco的`TCPServer`框架为C++开发者提供了一种简单而强大的方式来构建TCP服务器应用。它利用Poco库的强大功能,包括网络通信、多线程处理和配置管理,使得开发高效、稳定的服务器变得更加容易。通过理解和...

    WebApi 跨域问题解决方案:CORS

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

    Python语言基础:字符串使用.pptx

    字符串的拼接:使用“+”号连接的方式,Python就会自动将若干个字符串合并成一个字符串。 实例:使用字符串的拼接符“+”号,把“不忘初心”和“牢记使命”拼接起来,并输出结果,想想还有其他便捷的方式拼接吗?;...

    Net-FTPSSL-0.04.tar.gz

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

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

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

    sftp源码sftp源码sftp源码

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

    新手入门:使用Slient 方式安装WAS8

    - **新手入门:使用Silent方式安装WAS8**: [http://www.webspherechina.net/club/thread-51163-1-1.html](http://www.webspherechina.net/club/thread-51163-1-1.html) - **WAS8安装与维护概述**: ...

    Net::Vypress::Chat-开源

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

    Matlab COM之MWMCR::EvaluateFunction error问题解决

    - 如果`sim`函数确实不支持结构体类型的输入参数,可以考虑修改C#代码中的参数传递方式,或将结构体转换为其他类型(如数组)。 - 另外,还可以尝试在Matlab端编写一个包装函数,该函数接收结构体作为输入,并将其...

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

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

    std::string format格式化函数源代码及两种格式化方法

    本项目提供的`std::string format`函数是作者自定义的一个实现,它提供了一种方便的方式来格式化`std::string`对象,使得代码更清晰易读。源代码主要分布在`str.hpp`和`string_format.cpp`这两个文件中。 在`str....

    使用系统默认浏览器打开http网址

    本工程用于展示使用java如何实现这样的功能:使用系统默认浏览器打开http网址;使用用户指定的浏览器打开http网址。 本工程编码方式为:GBK 出现异常即解决方法: 当调用Tool类中的第二个方法时,指定的browerType...

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

    ISO 8601:2004

    ISO 8601:2004是一项国际标准,它定义了用于数据交换的信息表示方法,特别是关于日期和时间的数据表示方式。该标准由国际标准化组织(ISO)发布,旨在为全球范围内的信息交换提供一致性和可读性的基础。此版本是第三...

    Micro:bit入门系列教程分享

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

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

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

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

    CSS笔记总结(Xmind格式):第一天

    1.css使用方式: 行内样式:直接在html标签中添加style属性 内部样式表:在文件内部添加的样式 外部样式:单独的css样式文件,通过link标签引入 使用@import导入的外部样式:会在html加载完成之后才开始使用,且必须...

Global site tag (gtag.js) - Google Analytics