ruby - HTTP 请求中的用户代理,Ruby

标签 ruby http user-agent

我是 Ruby 的新手。我试过查看在线文档,但没有找到任何有效的方法。我想在以下 HTTP 请求 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

最佳答案

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

关于ruby - HTTP 请求中的用户代理,Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11075954/

相关文章:

ruby - Procs的绑定(bind)

forms - 高效的算法/方法来解析(没有任何框架)多部分/表单数据请求而不将所有内容读取到内存中?

java - 你如何在 Java 中执行一个 http post?

html - 我是否应该将所有小于 768px 的手机都视为触摸设备?

web-crawler - 什么是 "Bytespider"用户代理?

ruby-on-rails - Ruby on Rails - 使用 logger.info "hi"给出 undefined variable 或方法错误,要更改/设置什么?

ruby - 将数组分配给不同的变量

http - http2 TCP 连接何时关闭?

java - 如何在运行时 chromedriver selenium 中更改 useragent-string

ruby-on-rails - Ruby 数组转换为带括号的字符串