15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/proxied_request/request.rb', line 15
def self.request(url, config=Config.new)
proxy(config.get_proxy, config.get_port)
uri = URI.parse(url)
if uri.host == nil
raise ProxiedRequest::Error, "Invalid URL"
end
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
case config.get_type
when MethodType::GET
request = Net::HTTP::Get.new(uri)
when MethodType::POST
request = Net::HTTP::Post.new(uri)
when MethodType::PUT
request = Net::HTTP::Put.new(uri)
when MethodType::DELETE
request = Net::HTTP::Delete.new(uri)
when MethodType::HEAD
request = Net::HTTP::Head.new(uri)
when MethodType::OPTIONS
request = Net::HTTP::Options.new(uri)
when MethodType::TRACE
request = Net::HTTP::Trace.new(uri)
when MethodType::PATCH
request = Net::HTTP::Patch.new(uri)
else
raise ProxiedRequest::Error, "Invalid request type"
end
config..each do |key, value|
request.delete(key)
request.add_field(key, value)
end
request.body = config.get_body
http.open_timeout = config.get_timeout
response = http.request(request)
return response
end
|