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 のドキュメントを確認したところ、フラグが見つかりましたCURLINFO_RESPONSE_CODE

縁石ライブラリで同等のものは何ですか?

4

1 に答える 1

1

それを見つけた。

縁石ソースのクローンを作成し、grep を実行しました:

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 に答える