Class: AWS::Core::Http::Request
- Inherits:
-
Object
- Object
- AWS::Core::Http::Request
- Defined in:
- lib/aws/core/http/request.rb
Overview
Base class for all service reqeusts. This class describes a basic HTTP request, but will not make one. It is consumed by a HTTP handler class that sends the actual request and parses the actual response.
Direct Known Subclasses
AutoScaling::Request, AWS::CloudFormation::Request, DynamoDB::Request, EC2::Request, ELB::Request, IAM::Request, S3::Request, SNS::Request, SQS::Request, STS::Request, SimpleDB::Request, SimpleEmailService::Request, SimpleWorkflow::Request
Defined Under Namespace
Classes: CaseInsensitiveHash, Param
Instance Attribute Summary collapse
-
#access_key_id ⇒ String
The AWS access key ID used to authorize the request.
-
#headers ⇒ CaseInsensitiveHash
Request headers.
-
#host ⇒ String
Hostname of the request.
-
#http_method ⇒ String
GET, PUT POST, HEAD or DELETE, defaults to POST.
-
#params ⇒ Array
An array of request params, each param responds to #name and #value.
-
#path ⇒ String
Path of the request URI, defaults to /.
-
#proxy_uri ⇒ nil, URI
The URI to the proxy server requests are sent through if configured.
-
#read_timeout ⇒ Integer
The number of seconds the service has to respond before a timeout error is raised on the request.
-
#region ⇒ String
The region name this request is for.
-
#service_ruby_name ⇒ String
The snake-cased ruby name for the service (e.g. ‘s3’, ‘iam’, ‘dynamo_db’, etc).
Instance Method Summary collapse
-
#add_param(name_or_param, value = nil) ⇒ Object
(also: #[]=)
Adds a request param.
-
#body ⇒ String?
Returns the request body.
- #get_param(param_name) ⇒ Object
-
#initialize ⇒ Request
constructor
Returns a new empty http request object.
- #param_value_for(param_name) ⇒ Object
-
#port ⇒ Integer
Returns the port the request will be made over.
-
#port=(port_number) ⇒ Object
Override the default port (443 or 80).
-
#querystring ⇒ String?
Returns the requesty querystring.
-
#ssl_ca_file ⇒ String
Path to a bundle of CA certs in PEM format; the HTTP handler should use this to verify all HTTPS requests if #ssl_verify_peer? is true.
- #ssl_ca_file=(ca_file) ⇒ Object
-
#ssl_ca_path ⇒ String
Path to a bundle of CA certs in PEM format; the HTTP handler should use this to verify all HTTPS requests if #ssl_verify_peer? is true.
- #ssl_ca_path=(ca_path) ⇒ Object
- #ssl_verify_peer=(verify_peer) ⇒ Object
-
#ssl_verify_peer? ⇒ Boolean
If the client should verify the peer certificate or not.
-
#uri ⇒ String
The request uri.
-
#url_encoded_params ⇒ String
Returns the request params url encoded, or nil if this request has no params.
- #use_ssl=(state) ⇒ Object
-
#use_ssl? ⇒ Boolean
If this request should be sent over ssl or not.
Constructor Details
#initialize ⇒ Request
Returns a new empty http request object.
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/aws/core/http/request.rb', line 25 def initialize @host = nil @http_method = 'POST' @path = '/' @headers = CaseInsensitiveHash.new @params = [] @use_ssl = true @port = nil @read_timeout = 60 end |
Instance Attribute Details
#access_key_id ⇒ String
Returns the AWS access key ID used to authorize the request.
63 64 65 |
# File 'lib/aws/core/http/request.rb', line 63 def access_key_id @access_key_id end |
#headers ⇒ CaseInsensitiveHash
Returns request headers.
49 50 51 |
# File 'lib/aws/core/http/request.rb', line 49 def headers @headers end |
#host ⇒ String
Returns hostname of the request.
46 47 48 |
# File 'lib/aws/core/http/request.rb', line 46 def host @host end |
#http_method ⇒ String
Returns GET, PUT POST, HEAD or DELETE, defaults to POST.
56 57 58 |
# File 'lib/aws/core/http/request.rb', line 56 def http_method @http_method end |
#params ⇒ Array
Returns An array of request params, each param responds to #name and #value.
53 54 55 |
# File 'lib/aws/core/http/request.rb', line 53 def params @params end |
#path ⇒ String
Returns path of the request URI, defaults to /.
59 60 61 |
# File 'lib/aws/core/http/request.rb', line 59 def path @path end |
#proxy_uri ⇒ nil, URI
Returns The URI to the proxy server requests are sent through if configured. Returns nil if there is no proxy.
67 68 69 |
# File 'lib/aws/core/http/request.rb', line 67 def proxy_uri @proxy_uri end |
#read_timeout ⇒ Integer
Returns The number of seconds the service has to respond before a timeout error is raised on the request. Defaults to 60 seconds.
39 40 41 |
# File 'lib/aws/core/http/request.rb', line 39 def read_timeout @read_timeout end |
#region ⇒ String
Returns The region name this request is for. Only needs to be populated for requests against signature v4 endpoints.
71 72 73 |
# File 'lib/aws/core/http/request.rb', line 71 def region @region end |
#service_ruby_name ⇒ String
Returns The snake-cased ruby name for the service (e.g. ‘s3’, ‘iam’, ‘dynamo_db’, etc).
43 44 45 |
# File 'lib/aws/core/http/request.rb', line 43 def service_ruby_name @service_ruby_name end |
Instance Method Details
#add_param(param_name, param_value = nil) ⇒ Object #add_param(param_obj) ⇒ Object Also known as: []=
Adds a request param.
147 148 149 150 151 152 153 |
# File 'lib/aws/core/http/request.rb', line 147 def add_param name_or_param, value = nil if name_or_param.kind_of?(Param) @params << name_or_param else @params << Param.new(name_or_param, value) end end |
#body ⇒ String?
Returns the request body.
189 190 191 |
# File 'lib/aws/core/http/request.rb', line 189 def body url_encoded_params end |
#get_param(param_name) ⇒ Object
157 158 159 160 |
# File 'lib/aws/core/http/request.rb', line 157 def get_param param_name @params.detect{|p| p.name == param_name } || raise("undefined param #{param_name}") end |
#param_value_for(param_name) ⇒ Object
163 164 165 166 |
# File 'lib/aws/core/http/request.rb', line 163 def param_value_for param_name param = @params.detect{|p| p.name == param_name } param ? param.value : nil end |
#port ⇒ Integer
Returns the port the request will be made over. Defaults to 443 for SSL requests and 80 for non-SSL requests.
92 93 94 |
# File 'lib/aws/core/http/request.rb', line 92 def port @port || (use_ssl? ? 443 : 80) end |
#port=(port_number) ⇒ Object
Override the default port (443 or 80). If you pass nil then the default port will take precedence.
86 87 88 |
# File 'lib/aws/core/http/request.rb', line 86 def port= port_number @port = port_number end |
#querystring ⇒ String?
Returns the requesty querystring.
184 185 186 |
# File 'lib/aws/core/http/request.rb', line 184 def querystring nil end |
#ssl_ca_file ⇒ String
Returns Path to a bundle of CA certs in PEM format; the HTTP handler should use this to verify all HTTPS requests if #ssl_verify_peer? is true.
118 119 120 |
# File 'lib/aws/core/http/request.rb', line 118 def ssl_ca_file @ssl_ca_file end |
#ssl_ca_file=(ca_file) ⇒ Object
111 112 113 |
# File 'lib/aws/core/http/request.rb', line 111 def ssl_ca_file=(ca_file) @ssl_ca_file = ca_file end |
#ssl_ca_path ⇒ String
Returns Path to a bundle of CA certs in PEM format; the HTTP handler should use this to verify all HTTPS requests if #ssl_verify_peer? is true.
132 133 134 |
# File 'lib/aws/core/http/request.rb', line 132 def ssl_ca_path @ssl_ca_path end |
#ssl_ca_path=(ca_path) ⇒ Object
125 126 127 |
# File 'lib/aws/core/http/request.rb', line 125 def ssl_ca_path=(ca_path) @ssl_ca_path = ca_path end |
#ssl_verify_peer=(verify_peer) ⇒ Object
98 99 100 |
# File 'lib/aws/core/http/request.rb', line 98 def ssl_verify_peer=(verify_peer) @ssl_verify_peer = verify_peer end |
#ssl_verify_peer? ⇒ Boolean
Returns If the client should verify the peer certificate or not.
104 105 106 |
# File 'lib/aws/core/http/request.rb', line 104 def ssl_verify_peer? @ssl_verify_peer end |
#uri ⇒ String
Returns the request uri.
169 170 171 |
# File 'lib/aws/core/http/request.rb', line 169 def uri querystring ? "#{path}?#{querystring}" : path end |
#url_encoded_params ⇒ String
Returns the request params url encoded, or nil if this request has no params.
175 176 177 178 179 180 181 |
# File 'lib/aws/core/http/request.rb', line 175 def url_encoded_params if @params.empty? nil else @params.sort.collect{|p| p.encoded }.join('&') end end |
#use_ssl=(state) ⇒ Object
74 75 76 |
# File 'lib/aws/core/http/request.rb', line 74 def use_ssl= state @use_ssl = state end |
#use_ssl? ⇒ Boolean
Returns If this request should be sent over ssl or not.
79 80 81 |
# File 'lib/aws/core/http/request.rb', line 79 def use_ssl? @use_ssl end |