Class: AWS::Core::Http::Request

Inherits:
Object
  • Object
show all
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.

Defined Under Namespace

Classes: CaseInsensitiveHash, Param

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRequest

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_idString



63
64
65
# File 'lib/aws/core/http/request.rb', line 63

def access_key_id
  @access_key_id
end

#headersCaseInsensitiveHash



49
50
51
# File 'lib/aws/core/http/request.rb', line 49

def headers
  @headers
end

#hostString



46
47
48
# File 'lib/aws/core/http/request.rb', line 46

def host
  @host
end

#http_methodString



56
57
58
# File 'lib/aws/core/http/request.rb', line 56

def http_method
  @http_method
end

#paramsArray



53
54
55
# File 'lib/aws/core/http/request.rb', line 53

def params
  @params
end

#pathString



59
60
61
# File 'lib/aws/core/http/request.rb', line 59

def path
  @path
end

#proxy_urinil, URI



67
68
69
# File 'lib/aws/core/http/request.rb', line 67

def proxy_uri
  @proxy_uri
end

#read_timeoutInteger



39
40
41
# File 'lib/aws/core/http/request.rb', line 39

def read_timeout
  @read_timeout
end

#regionString



71
72
73
# File 'lib/aws/core/http/request.rb', line 71

def region
  @region
end

#service_ruby_nameString



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.

Overloads:

  • #add_param(param_name, param_value = nil) ⇒ Object

    Add a param (name/value)

  • #add_param(param_obj) ⇒ Object

    Add a param (object)



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

#bodyString?



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

#portInteger



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

#querystringString?



184
185
186
# File 'lib/aws/core/http/request.rb', line 184

def querystring
  nil
end

#ssl_ca_fileString



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_pathString



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



104
105
106
# File 'lib/aws/core/http/request.rb', line 104

def ssl_verify_peer?
  @ssl_verify_peer
end

#uriString



169
170
171
# File 'lib/aws/core/http/request.rb', line 169

def uri
  querystring ? "#{path}?#{querystring}" : path
end

#url_encoded_paramsString



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



79
80
81
# File 'lib/aws/core/http/request.rb', line 79

def use_ssl?
  @use_ssl
end