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.

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
# File 'lib/aws/core/http/request.rb', line 25

def initialize
  @default_read_timeout = 60
  @http_method = 'POST'
  @use_ssl = true
  @headers = CaseInsensitiveHash.new
  @uri = '/'
  @params = []
end

Instance Attribute Details

#default_read_timeoutInteger



37
38
39
# File 'lib/aws/core/http/request.rb', line 37

def default_read_timeout
  @default_read_timeout
end

#headersCaseInsensitiveHash



51
52
53
# File 'lib/aws/core/http/request.rb', line 51

def headers
  @headers
end

#hostString



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

def host
  @host
end

#http_methodString



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

def http_method
  @http_method
end

#portInteger



44
45
46
# File 'lib/aws/core/http/request.rb', line 44

def port
  @port
end

#proxy_urinil, URI



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

def proxy_uri
  @proxy_uri
end

#read_timeout=(value) ⇒ Integer



84
85
86
# File 'lib/aws/core/http/request.rb', line 84

def read_timeout=(value)
  @read_timeout = value
end

#regionString



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

def region
  @region
end

#service_ruby_nameString



75
76
77
# File 'lib/aws/core/http/request.rb', line 75

def service_ruby_name
  @service_ruby_name
end

#ssl_ca_fileString



101
102
103
# File 'lib/aws/core/http/request.rb', line 101

def ssl_ca_file
  @ssl_ca_file
end

#ssl_ca_pathString



106
107
108
# File 'lib/aws/core/http/request.rb', line 106

def ssl_ca_path
  @ssl_ca_path
end

#ssl_verify_peerBoolean Also known as: ssl_verify_peer?



94
95
96
# File 'lib/aws/core/http/request.rb', line 94

def ssl_verify_peer
  @ssl_verify_peer
end

#uriString



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

def uri
  @uri
end

#use_sslBoolean Also known as: use_ssl?



88
89
90
# File 'lib/aws/core/http/request.rb', line 88

def use_ssl
  @use_ssl
end

Instance Method Details

#bodyString?

Note:

Calling #body on a request with a #body_stream will cause the entire stream to be read into memory.

Returns the request body.



172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# File 'lib/aws/core/http/request.rb', line 172

def body
  if @body
    @body
  elsif @body_stream
    @body = @body_stream.read
    if @body_stream.respond_to?(:rewind)
      @body_stream.rewind
    else
      @body_stream = StringIO.new(@body)
    end
    @body
  else
    nil
  end
end

#body=(body) ⇒ Object



160
161
162
163
164
165
166
167
# File 'lib/aws/core/http/request.rb', line 160

def body= body
  @body = body
  if body
    headers['content-length'] = body.bytesize if body
  else
    headers.delete('content-length')
  end
end

#body_streamIO?



196
197
198
199
200
201
202
203
204
# File 'lib/aws/core/http/request.rb', line 196

def body_stream
  if @body_stream
    @body_stream
  elsif @body
    StringIO.new(@body)
  else
    nil
  end
end

#body_stream=(stream) ⇒ Object

Note:

You must also set the #headers

Sets the request body as an IO object that will be streamed.



191
192
193
# File 'lib/aws/core/http/request.rb', line 191

def body_stream= stream
  @body_stream = stream
end

#pathString



123
124
125
# File 'lib/aws/core/http/request.rb', line 123

def path
  uri.split(/\?/)[0]
end

#querystringString



128
129
130
# File 'lib/aws/core/http/request.rb', line 128

def querystring
  uri.split(/\?/)[1]
end