I've a task to test different user agents on a URL through automation. I'm using ruby to code, and I've been trying to set an user agent using the following method, but it doesn't seem to recognize the user agent.
@http = Net::HTTP.new(URL)
response = @http.request_get(URL, {'User-Agent' => useragent})
Is there any other way to do this, or what am I doing wrong?
Also another that work for me :
require 'open-uri'
html = open('http://your.site.com/the/page.html', 'User-Agent' => 'Ruby').read
puts html
Hope this will help you.
The included Net::HTTPHeader has the initialize_http_header method:
@http = Net::HTTP.new(URL)
@http.initialize_http_header({'User-Agent' => useragent})
response = @http.request_get(URL)
HTH
I wasn't able to find a solution that works for both https
and supplying a header. Here is a version that works:
require "net/http"
uri = URI("https://pokemongolive.com/events/community-day/")
request = Net::HTTP::Get.new(uri)
request["User-Agent"] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
response = Net::HTTP.start(uri.hostname, uri.port, :use_ssl => (uri.scheme == 'https')) {|http|
http.request(request)
}
puts response.code
puts response.body
The Ruby version being used was: ruby 2.6.3p62 (2019-04-16 revision 67580)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With