Ruby程序中发送基于HTTP协议的请求的简单示例
在Ruby中发送HTTP/HTTPS请求:用open-uri实现GET时需将参数直接拼入URL;POST使用Net::HTTP.post_form提交表单,可获取cookie与body;对于HTTPS要设置http.use_ssl=true,并用URI.escape转义特殊字符以确保安全请求。
在 Ruby 中发送 HTTP 或 HTTPS 请求,其实是一个非常常见的需求,尤其是在对接第三方 API、抓取网页或者构建自己的网络工具时。下面就用几个典型场景来演示具体的实现方式——代码可以直接拿去用,但更建议理解背后的逻辑。
1. 建立 HTTP 连接(通过 GET 方式发送请求参数)

require "open-uri" #如果有GET请求参数直接写在URI地址中 uri = 'http://uri' html_response = nil open(uri) do |http| html_response = http.read end puts html_response require "open-uri" #如果有GET请求参数直接写在URI地址中 uri = 'http://uri' html_response = nil open(uri) do |http| html_response = http.read end puts html_response
先说最简单的 GET 方式。如果参数不多,直接拼在 URL 后面就行,然后利用 open-uri 库打开链接,把返回的内容读出来。上面的代码重复了两遍,其实一次就够——可能只是示例里为了展示清晰。注意这里 open 方法会返回一个 HTTP 响应对象,通过 .read 就能拿到完整的 HTML 或 JSON 字符串。
2. 通过 POST 发送请求参数
params = {}
params["name"] = 'Tom'
uri = URI.parse("http://uri")
res = Net::HTTP.post_form
(uri, params)
#返回的cookie
puts res.header['set-cookie']
#返回的html body
puts res.body
params = {}
params["name"] = 'Tom'
uri = URI.parse("http://uri")
res = Net::HTTP.post_form
(uri, params)
#返回的cookie
puts res.header['set-cookie']
#返回的html body
puts res.body
POST 请求通常用来提交表单数据或 JSON 负载。这里用的是 Net::HTTP.post_form,它会自动把 params 哈希编码成表单格式发送。从响应里不仅可以拿到 body,还能获取服务端返回的 Set-Cookie 头,这在需要维持会话的场景下特别有用。
3. HTTPS 请求
#
# 描述:
# 发送快递数据到datasystem,使用https
# 输入:
# data - 组装后的expess的数据
# 输出:
# datasystem返回的状态信息
#
def self.senddatassl(url,data)
url = url + data
$logger.info(url)
begin
uri = URI.parse(URI.escape(url))
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
if ($logger != nil)
$logger.info("链接地址参数:#{URI.escape(url)},文件名:#{__FILE__},第 #{__LINE__} 行")
$logger.info("传入data参数:#{data.to_json},文件名:#{__FILE__},第 #{__LINE__} 行")
end
request = Net::HTTP::Get.new(uri.request_uri)
response = http.request(request)
rescue =>exception
$logger.error("传递url地址为#{url},错误!#{exception.to_s},文件名:#{__FILE__},第 #{__LINE__} 行")
return nil
end
return response.body
end
最后是 HTTPS——本质和 HTTP 一样,只需多设置一个 http.use_ssl = true。上面的代码是一个完整的方法封装,把 URL 和参数拼在一起、记录日志、捕获异常,最后返回响应 body。注意这里用了 URI.escape 来对 URL 做编码处理,避免特殊字符导致请求失败。整个逻辑很扎实,生产环境里稍加完善就能直接用。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















