使用Curb发出HTTP标头请求

时间:2013-05-05 11:51:36

标签: ruby curl curb

使用curl我可以像这样执行HTTP头请求:

curl -I 'http://www.google.com'

如何使用Curb执行此过程?我不想找回身体,因为这需要花费太多时间。

1 个答案:

答案 0 :(得分:4)

-I/--head选项会执行HEAD请求。使用libcurl C API,您需要设置CURLOPT_NOBODY选项。

使用curb,您可以在句柄上设置此选项,如下所示:

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")。据说,在使用它之前等到下一个限制发布,因为它在编写本文时 NOT 正在工作,并且刚修补过:请参阅此pull request