1

我正在使用 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 文档,发现了一个 flag CURLINFO_RESPONSE_CODE

路边库中的等价物是什么?

4

1 回答 1

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
于 2013-04-08T11:55:01.443 回答