class AWS::Core::Http::HTTPartyHandler
)
)
:http_proxyport => 80
:http_proxyaddr => “myproxy.com”,
:http_handler => AWS::Http::HTTPartyHandler.new(
AWS.config(
proxy:
to send extra options to HTTParty, for example to enable an HTTP
it. However, you can directly instantiate this class in order
handler, so you don’t need to do anything special to configure
Makes HTTP requests using HTTParty. This is the default
def handle(request, response)
def handle(request, response) opts = default_request_options.merge({ :body => request.body, :parser => NoOpParser }) if request.proxy_uri opts[:http_proxyaddr] = request.proxy_uri.host opts[:http_proxyport] = request.proxy_uri.port end if request.use_ssl? url = "https://#{request.host}:443#{request.uri}" opts[:ssl_ca_file] = request.ssl_ca_file if request.ssl_verify_peer? else url = "http://#{request.host}#{request.uri}" end # get, post, put, delete, head method = request.http_method.downcase # Net::HTTP adds this header for us when the body is # provided, but it messes up signing headers = { 'content-type' => '' } # headers must have string values (net http calls .strip on them) request.headers.each_pair do |key,value| headers[key] = value.to_s end opts[:headers] = headers begin http_response = self.class.send(method, url, opts) rescue Timeout::Error, Errno::ETIMEDOUT => e response.timeout = true else response.body = http_response.body response.status = http_response.code.to_i response.headers = http_response.to_hash end end
def initialize options = {}
-
options
(Hash
) -- Default options to send to HTTParty on
def initialize options = {} @default_request_options = options end