使用 curl 我可以像这样执行 HTTP 标头请求:
curl -I 'http://www.google.com'
如何使用 Curb 执行此过程?我不想取回尸体,因为这会花费太多时间。
该-I/--head
选项执行HEAD
请求。使用 libcurl C API,您需要设置CURLOPT_NOBODY选项。
使用遏制,您可以在手柄上设置此选项,如下所示:
h = Curl::Easy.new("http://www.google.com")
h.set :nobody, true
h.perform
puts h.header_str
# HTTP/1.1 302 Found
# Location: http://www.google.fr/
# Cache-Control: private
# Content-Type: text/html; charset=UTF-8
# ...
作为替代方案,您可以使用一种方便的快捷方式,例如:
h = Curl::Easy.new("http://www.google.com")
# This sets the option behind the scenes, and call `perform`
h.http_head
puts h.header_str
# ...
或者像这样,使用类方法:
h = Curl::Easy.http_head("http://www.google.com")
puts h.header_str
# ...
注意:最终的快捷方式是Curl.head("http://www.google.com")
. 话虽如此,请等到下一个遏制版本再使用它,因为在撰写本文时它还没有工作,并且刚刚被修补:请参阅此拉取请求。