在 Ruby 中发出超时的 HTTP HEAD 请求

2023-12-03

在 Rails 应用程序中,我想对资源(用户提供的 URL)发出 HTTP HEAD 请求,以确保它存在。我还想要一个超时,以确保该方法在花费合理的等待时间后失败。实现此目的最直接的方法是什么(如果可能,使用标准库)?


试试这个片段:

require 'net/http'

Net::HTTP.start('www.some_site.com') do |http|
  http.open_timeout = 2
  http.read_timeout = 2
  req = Net::HTTP::Head.new('/')
  http.request(req).each { |k, v| puts "#{k}: #{v}" }
end

希望这就是您正在寻找的。

UPDATE

因为有head看起来像的方法

def head(path, initheader = nil)
  request(Head.new(path, initheader))
end

您还可以使用此代码片段:

require 'net/http'

Net::HTTP.start('www.rubyinside.com') do |http|
  http.open_timeout = 2
  http.read_timeout = 2
  http.head('/').each { |k, v| puts "#{k}: #{v}" }
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Ruby 中发出超时的 HTTP HEAD 请求 的相关文章

随机推荐

  • android canvas绘制圆圈并获取触摸事件

    我一直在尝试在我需要的地方制作这样的演示draw许多 数百个 circle形状上canvas 或任何其他方式 如果可能的话 绘制画布后我需要缩放并移动它 并且还想捕捉分别对每个形状进行单击 触摸 事件 所以我知道我可以获取画布触摸事件并获取
  • 有没有办法使用 while 循环函数作为列表跟踪器?并与 FileI/O 混合?

    to do list while True in listed input item list if in listed quit break if in listed 0 add num1 int user li 1 to do list
  • 将系统调用事件跟踪输出的格式更改为 ftrace

    我启用了 ftrace 事件跟踪sys enter openat系统调用 各自的输出格式给出events syscalls sys enter openat format is print fmt dfd 0x 08lx filename
  • 为什么像“矩形”和“线条”这样的绘图命令会忽略“推迟”?

    我试图在循环中显示一个变化的矩形 并暂停 并且它忽略了延迟 实际上应该是默认的 这是简化版本的代码 clc close all clear all rect 10 10 20 30 figure axis 0 200 0 50 for i
  • 为什么我的系统库和框架在 macOS Monterey 中不可见?

    我在刚刚构建的 dylib 上使用 otool L 检查了一些依赖关系 并得到了以下系统依赖关系 System Library Frameworks Accelerate framework Versions A Accelerate co
  • 用纯Python控制游戏控制器的振动电机?

    我买了一个带有振动电机的标准游戏控制器 它自称为 SHANWAN Android Gamepad 但似乎与其他游戏兼容 因为它在 Linux 上开箱即用 运行良好 我找到了一个脚本 使我能够从游戏控制器设备路径读取数据https gist
  • array_udiff 似乎不起作用

    我试图用 array udiff 比较两个数组 但这很奇怪 看来 array udiff 没有得到正确的答案 这里是现场演示 结果应该是一个空数组 但保留一个未过滤的元素
  • 使用 C# 在 Windows 应用程序中从一种表单检索值到另一种表单 [重复]

    这个问题在这里已经有答案了 我有一个登录表单和更改密码表单 我想检索登录时在登录表单中输入的用户名值 我创建了一个名为 RetUserName 的属性 如下所示 public partial class frmLogin Form priv
  • 在 $bind_param() 中动态绑定参数; mysqli

    我有 DB 类 它处理将对数据库进行的所有查询 我的 mysqli 准备工作正常 bind param 也工作正常 但问题是我想动态定义变量类型 这是我的代码 public function query sql params array t
  • Android File.listFiles 不显示目录内的所有文件

    我正在使用 Android Emulator 2 2 版本来开发一个小应用程序 我应该列出目录下的所有图像文件 jpg 文件 我通过 ADB puash 命令将文件复制到 data 示例 data 1 jpg 现在 我创建一个 File 对
  • php switch 语句 int = 0 时出错

    我在 php switch case 中遇到问题 当我设置 数字 0它应该首先运行case但这里代码返回10 20K这是第二种情况 我检查了比较运算符 在 if else 情况下测试了它们 它们返回正确的值 但这里第一种情况不运行 数字 0
  • 浮点运算:误差求和与乘法

    我试图理解这个简单示例背后的浮点运算 理论上 这两种代码在算术上是等价的 但显然一系列加法比简单的乘法增加了更多的错误 s 0 0 for i in range 10 s 0 1 print s print 30f s 0 99999999
  • 使用 VarArgs 隐式定义

    我刚刚注意到implicit def似乎在 var args 中不起作用 例如 我有一个java函数 它需要java lang Byte 作为其参数输入 该函数调用被一个 scala 方法包围 该方法采用scala Byte implici
  • 这种即发即忘的方法正确吗?

    我已经实施了Instagram API 实时更新 基本上 当根据我的订阅添加新图像时 它们会向我提供的 url 发出 POST 请求 他们说 您应该在 2 秒超时内确认 POST 如果您需要对收到的信息进行更多处理 您可以在异步任务中执行此
  • 将反应表行数据传递给反应模式

    作为 React 新手 我很难将数据从反应表传递到 编辑 模式 并且似乎无法找到类似问题的解决方案 数据通过 Axios API 调用从数据库中获取并呈现在反应表中 我需要将渲染行的数据传递到模式 以便随后发出放置请求并将数据更新到服务器
  • Groovy 子类调用访问闭包的超类方法

    我有一个很棒的超类 如下所示 class AGroovyClass private String str hello void printString int nTimes nTimes times println str 和子类 clas
  • mac os jdk 1.8 问题 vlc 控制 JAWT 无法加载

    JavaVM WARNING JAWT GetAWT must be called after loading a JVM Exception in thread AWT EventQueue 0 java lang Unsatisfied
  • 使用 MySQL C API - 使用准备好的语句检查插入行是否成功

    我开始学习如何使用 MySQL C API 并遇到了准备好的语句 我以前没有在其他语言中使用过这些 所以这对我来说都是新的 我在网上查了一下 我已经弄清楚如何使用准备好的语句从SELECT查询 现在我想做的是INSERT一些数据 看看是否成
  • 返回与值部分匹配的记录

    我正在尝试让查询工作 该查询从表单控件获取值 有时只是字符串的第一部分 我遇到的问题是 它仅在输入完整字符串时返回记录 即在姓氏框中 我应该能够输入 gr 它会显示 绿色的 灰色的 格雷厄姆 但目前除非使用完整的搜索字符串 否则它不会显示任
  • 在 Ruby 中发出超时的 HTTP HEAD 请求

    在 Rails 应用程序中 我想对资源 用户提供的 URL 发出 HTTP HEAD 请求 以确保它存在 我还想要一个超时 以确保该方法在花费合理的等待时间后失败 实现此目的最直接的方法是什么 如果可能 使用标准库 试试这个片段 requi