我对Ruby很新。我试过查看在线文档,但我还没有发现任何有用的东西。我想在以下HTTP请求中包含User-Agent,bot get_response()和get()。有人能指出我正确的方向吗?
# 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 :(得分:9)
Amir F是正确的,您可能喜欢使用其他HTTP客户端,如RestClient或Faraday,但如果您想坚持使用标准的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
答案 1 :(得分:1)
Net::HTTP
级别非常低,我建议使用rest-client gem - 它也会自动跟踪重定向并且更容易使用,即:
require 'rest_client'
response = RestClient.get proggit_url
if response.code != 200
# do something
end