我正在使用curb来测试Ruby中的一些URL:
require 'curb'
def test_url()
c = Curl::Easy.new("http://www.wikipedia.org/wiki/URL_redirection") do |curl|
curl.follow_location= true
curl.head = true
end
c.perform
puts "status => " + c.status
puts "body => " + c.body_str
puts "final url => " + c.last_effective_url
end
test_url
输出:
status => 301 Moved Permanently
body =>
final url => http://en.wikipedia.org/wiki/URL_redirection
在这种情况下,www.wikipedia.org/wiki/URL_redirection
会重定向到en.wikipedia.org/wiki/URL_redirection
。
如您所见,我获得了301状态。如何获取最终响应代码的状态?
在这种情况下,它是200,因为找到了文档。我检查了libcurl文档并找到了一个标志CURLINFO_RESPONSE_CODE
。
路边库中的等价物是什么?
答案 0 :(得分:1)
找到它。
我克隆了路缘石来源并且抓了一下:
last_effective_url
在下面的函数中,它与响应代码等效,在curb_easy.c中,第2435行。
自我注意,“使用源卢克”!
更新:
答案是response_code
在我的例子中,代码看起来像这样:
c = Curl::Easy.new(HOST_NAME) do |curl|
curl.follow_location = true
curl.head = true
end
c.perform
puts url + " => " + c.response_code.to_s