Skip to content

Instantly share code, notes, and snippets.

@KINGSABRI
Last active August 29, 2015 09:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KINGSABRI/692077739ea3b48dd1be to your computer and use it in GitHub Desktop.
Save KINGSABRI/692077739ea3b48dd1be to your computer and use it in GitHub Desktop.
To do multiple HTTP authenticated requests
require "net/http"
# Login
uri = URI.parse("http://xx.xx.xx/Login.aspx")
http = Net::HTTP.new(uri.host, uri.port)
http.set_debug_output($stdout)
request_login = Net::HTTP::Post.new(uri.request_uri)
request_login["Accept-Language"] = "en-US,en;q=0.5"
request_login["Accept-Encoding"] = "gzip, deflate"
request_login["Referer"] = "http://xx.xx.xx.xx/"
request_login["User-Agent"] = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0"
request_login["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
request_login["Connection"] = "keep-alive"
request_login["Content-Type"] = "application/x-www-form-urlencoded"
request_login.set_form_data({"UserName"=>"admin","RememberMe"=>"false","ReturnUrl"=>"","Password"=>"admin"})
response_login = http.request(request_login)
puts "Status code: " + response_login.code
puts "Response body: " + response_login.body
# Save cookies for later use
cookies_login = response_login.header.each_header {|key,value|}
# Access auth page '/admin/adduser.aspx'
uri = URI.parse("http://xx.xx.xx.xx/admin/adduser.aspx")
http = Net::HTTP.new(uri.host, uri.port)
http.set_debug_output($stdout)
request = Net::HTTP::Get.new(uri.request_uri)
request["Accept-Language"] = "en-US,en;q=0.5"
request["Accept-Encoding"] = "gzip, deflate"
request["Referer"] = "http://xx.xx.xx.xx/Lgoin.aspx"
request["User-Agent"] = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0"
request["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
request["Connection"] = "keep-alive"
request["Content-Type"] = "application/x-www-form-urlencoded"
# Add previously stored cookies from login
request["set-cookie"] = cookies_login['set-cookie']
response = http.request(request)
puts response.header.each_header {|key,value|}
puts "Response body: " + response.body
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment