@@ -4,9 +4,13 @@ module HTTP
4
4
class Request
5
5
def self . create_type ( &native_request_factory )
6
6
Class . new do
7
+ attr_accessor :body , :encoding
8
+
7
9
def initialize ( uri , params = { } )
8
10
@uri = uri
9
11
@params = params
12
+ @encoding = "UTF-8"
13
+
10
14
@headers = { }
11
15
end
12
16
@@ -18,17 +22,13 @@ def content_type=(type)
18
22
add_headers ( { 'content-type' => type } )
19
23
end
20
24
21
- def body = ( request_body )
22
- @body = request_body
23
- end
24
-
25
25
def basic_auth ( username , password )
26
26
@username = username
27
27
@password = password
28
28
end
29
29
30
- def make_native_request ( client , encoding , handler = nil )
31
- request = create_native_request ( encoding )
30
+ def make_native_request ( client , handler = nil )
31
+ request = create_native_request
32
32
request . entity = StringEntity . new ( @body ) unless @body . nil?
33
33
34
34
unless @username . nil?
@@ -50,12 +50,12 @@ def parse_uri
50
50
end
51
51
52
52
private
53
- define_method ( :create_native_request ) do | encoding |
53
+ define_method ( :create_native_request ) do
54
54
scheme , host , port , path , query = parse_uri
55
55
query_params = CGI . parse ( query || "" ) . merge ( @params )
56
56
57
57
params = query_params . collect { |key , value | BasicNameValuePair . new ( key . to_s , value . to_s ) }
58
- request = native_request_factory . call ( scheme , host , port , path , params , encoding )
58
+ request = native_request_factory . call ( scheme , host , port , path , params , @ encoding)
59
59
60
60
@headers . each { |name , value | request . add_header ( name . to_s , value . to_s ) }
61
61
0 commit comments