2012-06-18 24 views
5

Rubyの新機能です。私はオンラインのドキュメントを見てみることを試みたが、私はかなり動作しているものは見つけられていない。私はUser-Agentを以下のHTTPリクエスト、bot get_response()とget()に含めたいと思います。誰かが私を正しい方向に向けることができますか?HTTPリクエストのユーザーエージェント、Ruby

# Preliminary check that Proggit is up 
    check = Net::HTTP.get_response(URI.parse(proggit_url)) 
    if check.code != "200" 
    puts "Error contacting Proggit" 
    return 
    end 

    # Attempt to get the json 
    response = Net::HTTP.get(URI.parse(proggit_url)) 
    if response.nil? 
    puts "Bad response when fetching Proggit json" 
    return 
    end 
+0

これはあなたの問題の解決策だと思う:http://www.dzone.com/snippets/send-custom-headers-rubyまたはhttp://stackoverflow.com/questions/587559/ruby-how-to-make -an-http-get-with-modified-headers – nhahtdh

答えて

9

Amir Fが正しい、あなたのことをRestClientまたはファラデーのような別のHTTPクライアントを使用して楽しむことができますが、標準のRubyライブラリに固執したい場合は、このようなあなたのユーザエージェントを設定できます

url = URI.parse(proggit_url) 
req = Net::HTTP::Get.new(proggit_url) 
req.add_field('User-Agent', 'My User Agent Dawg') 
res = Net::HTTP.start(url.host, url.port) {|http| http.request(req) } 
res.body 
+0

ありがとう!これはうまくいったようです! – hodgesmr

+0

ruby​​ 1.9.3では、このように 'add_field'を実行すると、' Ruby、My User Agent Dawg'のようなユーザーエージェントで終わります –

1

Net::HTTPが非常に低いレベルですが、私はrest-client gemを使用することをお勧めします - それはまた、自動的にリダイレクトして、あなたが作業しやすいこと、すなわち、以下になります。

require 'rest_client' 

response = RestClient.get proggit_url 
if response.code != 200 
    # do something 
end 
関連する問題