Advertisement
Narzew

HTTP Post Requester by Narzew

Jun 9th, 2015
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.09 KB | None | 0 0
  1. #=======================================================================
  2. #**Post Requester
  3. #**Copyright 09.06.2015 Narzew
  4. #**v 1.00
  5. #=======================================================================
  6.  
  7. require 'net/http'
  8. require 'uri'
  9.  
  10. module PostRequester
  11.  
  12.     def self.show_help
  13.         print "Usage: postrequester.rb URL field=value field=value !flag=value\n"
  14.         print "Available flags:\n"
  15.         print "sc - Split center - remove all before first and after second pattern\n"
  16.         print "sr - Split right - remove all before pattern\n"
  17.         print "sl - Split left - remove all after pattern\n"
  18.     end
  19.    
  20.     def self.print_error(x)
  21.         print "Error: #{x}\n"
  22.         self.show_help
  23.     end
  24.    
  25.     def self.return_response(x)
  26.         print "#{x}\n"
  27.         begin
  28.             File.open("postrequester_log.txt", "a"){|w| w.write(x+"\n") }
  29.         rescue
  30.             print "Warning: Failed to log response."
  31.         end
  32.     end
  33.  
  34.     def self.start
  35.         count = 0
  36.         fields = {}
  37.         flags = {}
  38.         ARGV.each{|x|
  39.             if count == 0
  40.                 $url = x
  41.                 count +=1
  42.                 next
  43.             end
  44.             if x.include?("=")
  45.                 data = x.split("=")
  46.                 if data.at(0)[0] == "!"
  47.                      # Field is flag
  48.                     flags[data.at(0).gsub("!","")] = data.at(1)
  49.                 else
  50.                     # Field is key=value field
  51.                     fields[data.at(0)] = data.at(1)
  52.                 end
  53.             else
  54.                 self.print_error("Invalid parameter: "+x)
  55.                 PostRequester.show_help
  56.             end
  57.             count += 1
  58.         }
  59.        
  60.         # Parse fields
  61.         uri = URI($url)
  62.         https = Net::HTTP.new(uri.host, uri.port)
  63.         response = https.post($url, URI.encode_www_form(fields))
  64.         result = response.body
  65.         if flags.include?("sc")
  66.             result2 = result.split(flags["sc"])[1].to_s
  67.             result2 = result2.split(flags["sc"])[0].to_s
  68.             self.return_response(result2)
  69.         elsif flags.include?("sl")
  70.             result2 = result.split(flags["sl"])[0].to_s
  71.             self.return_response(result2)
  72.         elsif flags.include?("sr")
  73.             result2 = result.split(flags["sr"])[1].to_s
  74.             self.return_response(result2)
  75.         else
  76.             self.return_response(result)
  77.         end
  78.     end
  79.        
  80. end
  81.  
  82. begin
  83.     if ARGV.size > 1
  84.         $url = ARGV[0]
  85.         PostRequester.start
  86.     else
  87.         PostRequester.show_help
  88.     end
  89. rescue => e
  90.     print "Error #{e}\n"
  91. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement