5

私はRubyにかなり慣れていません。オンラインドキュメントを調べてみましたが、うまく機能するものは見つかりませんでした。次のHTTPリクエスト、ボットget_response()およびget()にUser-Agentを含めたいと思います。誰かが私を正しい方向に向けることができますか?

  # 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
4

2 に答える 2

8

Amir Fは正しいので、RestClientやFaradayなどの別の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
于 2012-06-18T13:45:16.743 に答える
1

Net::HTTPは非常に低レベルなので、rest-client gemを使用することをお勧めします-リダイレクトにも自動的に追従し、作業が簡単になります。

require 'rest_client'

response = RestClient.get proggit_url
if response.code != 200
  # do something
end
于 2012-06-18T06:25:14.737 に答える