http_request.rb 1.1.7 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Changelog +4 -1
- data/README.rdoc +3 -3
- data/lib/http_request.rb +7 -6
- data/test/test_http_request.rb +32 -36
- metadata +3 -6
data/Changelog
CHANGED
data/README.rdoc
CHANGED
@@ -69,12 +69,12 @@ add cookies into header
|
|
69
69
|
upload file by post method
|
70
70
|
HttpRequest.post(
|
71
71
|
:url => 'http://localhost/upload.php',
|
72
|
-
:files =>
|
72
|
+
:files => {
|
73
73
|
:file_name => 'test.txt', # original file name, default is rand name such as 0cdex_0
|
74
74
|
:field_name => 'user_file', # input field name, default is "files[]"
|
75
75
|
:content_type => 'text/plain', # content type, default is application/octet-stream
|
76
76
|
:file_content => 'Have a nice day!' # file content
|
77
|
-
}
|
77
|
+
}
|
78
78
|
)
|
79
79
|
|
80
80
|
upload more than 1 file
|
@@ -227,4 +227,4 @@ download multiple files from a directory
|
|
227
227
|
bug fixing, testing and testing...
|
228
228
|
|
229
229
|
== LATEST VERSION
|
230
|
-
1.1.
|
230
|
+
1.1.8
|
data/lib/http_request.rb
CHANGED
@@ -286,7 +286,7 @@ class HttpRequest
|
|
286
286
|
|
287
287
|
# parse parameters for the options[:parameters] and @uri.query
|
288
288
|
def parse_parameters
|
289
|
-
if @options[:parameters].is_a?
|
289
|
+
if @options[:parameters].is_a?(Hash)
|
290
290
|
@options[:parameters] = @options[:parameters].collect{|k, v|
|
291
291
|
"#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
|
292
292
|
}.join('&')
|
@@ -297,7 +297,7 @@ class HttpRequest
|
|
297
297
|
end
|
298
298
|
|
299
299
|
# for uploading files
|
300
|
-
build_multipart if @options[:files]
|
300
|
+
build_multipart if @options[:files] and 'post'.eql?(@options[:method])
|
301
301
|
end
|
302
302
|
|
303
303
|
# for uploading files
|
@@ -305,16 +305,17 @@ class HttpRequest
|
|
305
305
|
boundary = md5(rand.to_s).to_s[0..5]
|
306
306
|
@headers['Content-type'] = "multipart/form-data, boundary=#{boundary}"
|
307
307
|
multipart = []
|
308
|
-
if @options[:parameters]
|
309
|
-
@options[:parameters] = CGI.parse(@options[:parameters])
|
308
|
+
if @options[:parameters].is_a?(String)
|
309
|
+
@options[:parameters] = CGI.parse(@options[:parameters])
|
310
310
|
if @options[:parameters].is_a? Hash
|
311
311
|
@options[:parameters].each {|k, v|
|
312
312
|
multipart << "--#{boundary}"
|
313
|
-
multipart << "Content-disposition: form-data; name=\"#{
|
314
|
-
multipart << "\r\n#{
|
313
|
+
multipart << "Content-disposition: form-data; name=\"#{k}\""
|
314
|
+
multipart << "\r\n#{v.first}"
|
315
315
|
}
|
316
316
|
end
|
317
317
|
end
|
318
|
+
@options[:files] = [@options[:files]] if @options[:files].is_a?(Hash)
|
318
319
|
@options[:files].each_with_index {|f, index|
|
319
320
|
f[:field_name] ||= "files[]"
|
320
321
|
f[:file_name] ||= "#{boundary}_#{index}"
|
data/test/test_http_request.rb
CHANGED
@@ -63,29 +63,23 @@ context "some basic requests with parameter" do
|
|
63
63
|
hr.get(URL + '/get?&#').body.should.equal({}.inspect)
|
64
64
|
hr.get(URL + '/get?abc=').body.should.equal({'abc' => ''}.inspect)
|
65
65
|
|
66
|
-
hr.get(URL + '/get?lang=Ruby&version=1.9').body.should.
|
67
|
-
|
68
|
-
}.inspect)
|
66
|
+
hr.get(URL + '/get?lang=Ruby&version=1.9').body.should.include('"lang"=>"Ruby"')
|
67
|
+
hr.get(URL + '/get?lang=Ruby&version=1.9').body.should.include('"version"=>"1.9"')
|
69
68
|
|
70
|
-
hr.get(:url => URL + '/get', :parameters => 'lang=Ruby&version=1.9').body.should.
|
71
|
-
|
72
|
-
}.inspect)
|
69
|
+
hr.get(:url => URL + '/get', :parameters => 'lang=Ruby&version=1.9').body.should.include('"lang"=>"Ruby"')
|
70
|
+
hr.get(:url => URL + '/get', :parameters => 'lang=Ruby&version=1.9').body.should.include('"version"=>"1.9"')
|
73
71
|
|
74
|
-
hr.get(:url => URL + '/get', :parameters => {:lang => 'Ruby', :version => 1.9}).body.should.
|
75
|
-
|
76
|
-
}.inspect)
|
72
|
+
hr.get(:url => URL + '/get', :parameters => {:lang => 'Ruby', :version => '1.9'}).body.should.include('"lang"=>"Ruby"')
|
73
|
+
hr.get(:url => URL + '/get', :parameters => {:lang => 'Ruby', :version => '1.9'}).body.should.include('"version"=>"1.9"')
|
77
74
|
|
78
|
-
hr.get(:url => URL + '/get?lang=Ruby', :parameters => {:version => 1.9}).body.should.
|
79
|
-
|
80
|
-
}.inspect)
|
75
|
+
hr.get(:url => URL + '/get?lang=Ruby', :parameters => {:version => '1.9'}).body.should.include('"lang"=>"Ruby"')
|
76
|
+
hr.get(:url => URL + '/get?lang=Ruby', :parameters => {:version => '1.9'}).body.should.include('"version"=>"1.9"')
|
81
77
|
|
82
|
-
hr.get(:url => URL + '/get', :parameters => {'lang' => 'Ruby', 'version' => '1.9'}).body.should.
|
83
|
-
|
84
|
-
}.inspect)
|
78
|
+
hr.get(:url => URL + '/get', :parameters => {'lang' => 'Ruby', 'version' => '1.9'}).body.should.include('"lang"=>"Ruby"')
|
79
|
+
hr.get(:url => URL + '/get', :parameters => {'lang' => 'Ruby', 'version' => '1.9'}).body.should.include('"version"=>"1.9"')
|
85
80
|
|
86
|
-
hr.get(URL + '/get', :parameters => {'lang' => 'Ruby', 'version' => '1.9'}).body.should.
|
87
|
-
|
88
|
-
}.inspect)
|
81
|
+
hr.get(URL + '/get', :parameters => {'lang' => 'Ruby', 'version' => '1.9'}).body.should.include('"lang"=>"Ruby"')
|
82
|
+
hr.get(URL + '/get', :parameters => {'lang' => 'Ruby', 'version' => '1.9'}).body.should.include('"version"=>"1.9"')
|
89
83
|
|
90
84
|
hr.get(URL + '/get?ids[]=1&ids[]=2').body.should.equal({
|
91
85
|
'ids' => ['1', '2']
|
@@ -103,9 +97,9 @@ context "some basic requests with parameter" do
|
|
103
97
|
'ids' => {'a' => '1', 'b' => '2'}
|
104
98
|
}.inspect)
|
105
99
|
|
106
|
-
hr.get(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should.
|
107
|
-
|
108
|
-
}.
|
100
|
+
hr.get(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should.include('"ids"=>{')
|
101
|
+
hr.get(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should.include('"a"=>"1"')
|
102
|
+
hr.get(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should.include('"b"=>"2"')
|
109
103
|
end
|
110
104
|
|
111
105
|
specify "post method" do
|
@@ -114,21 +108,23 @@ context "some basic requests with parameter" do
|
|
114
108
|
hr.post(URL + '/get?&#').body.should.equal({}.inspect)
|
115
109
|
hr.post(URL + '/get?abc=').body.should.equal({'abc' => ''}.inspect)
|
116
110
|
|
117
|
-
hr.post(URL + '/get?lang=Ruby&version=1.9').body.should.
|
118
|
-
|
119
|
-
}.inspect)
|
111
|
+
hr.post(URL + '/get?lang=Ruby&version=1.9').body.should.include('"lang"=>"Ruby"')
|
112
|
+
hr.post(URL + '/get?lang=Ruby&version=1.9').body.should.include('"version"=>"1.9"')
|
120
113
|
|
121
|
-
hr.post(:url => URL + '/get', :parameters => 'lang=Ruby&version=1.9').body.should.
|
122
|
-
|
123
|
-
}.inspect)
|
114
|
+
hr.post(:url => URL + '/get', :parameters => 'lang=Ruby&version=1.9').body.should.include('"lang"=>"Ruby"')
|
115
|
+
hr.post(:url => URL + '/get', :parameters => 'lang=Ruby&version=1.9').body.should.include('"version"=>"1.9"')
|
124
116
|
|
125
|
-
hr.post(:url => URL + '/get', :parameters => {:lang => 'Ruby', :version => 1.9}).body.should.
|
126
|
-
|
127
|
-
}.inspect)
|
117
|
+
hr.post(:url => URL + '/get', :parameters => {:lang => 'Ruby', :version => '1.9'}).body.should.include('"lang"=>"Ruby"')
|
118
|
+
hr.post(:url => URL + '/get', :parameters => {:lang => 'Ruby', :version => '1.9'}).body.should.include('"version"=>"1.9"')
|
128
119
|
|
129
|
-
hr.post(:url => URL + '/get', :parameters => {
|
130
|
-
|
131
|
-
|
120
|
+
hr.post(:url => URL + '/get?lang=Ruby', :parameters => {:version => '1.9'}).body.should.include('"lang"=>"Ruby"')
|
121
|
+
hr.post(:url => URL + '/get?lang=Ruby', :parameters => {:version => '1.9'}).body.should.include('"version"=>"1.9"')
|
122
|
+
|
123
|
+
hr.post(:url => URL + '/get', :parameters => {'lang' => 'Ruby', 'version' => '1.9'}).body.should.include('"lang"=>"Ruby"')
|
124
|
+
hr.post(:url => URL + '/get', :parameters => {'lang' => 'Ruby', 'version' => '1.9'}).body.should.include('"version"=>"1.9"')
|
125
|
+
|
126
|
+
hr.post(URL + '/get', :parameters => {'lang' => 'Ruby', 'version' => '1.9'}).body.should.include('"lang"=>"Ruby"')
|
127
|
+
hr.post(URL + '/get', :parameters => {'lang' => 'Ruby', 'version' => '1.9'}).body.should.include('"version"=>"1.9"')
|
132
128
|
|
133
129
|
hr.post(URL + '/get?ids[]=1&ids[]=2').body.should.equal({
|
134
130
|
'ids' => ['1', '2']
|
@@ -146,9 +142,9 @@ context "some basic requests with parameter" do
|
|
146
142
|
'ids' => {'a' => '1', 'b' => '2'}
|
147
143
|
}.inspect)
|
148
144
|
|
149
|
-
hr.post(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should.
|
150
|
-
|
151
|
-
}.
|
145
|
+
hr.post(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should.include('"ids"=>{')
|
146
|
+
hr.post(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should.include('"a"=>"1"')
|
147
|
+
hr.post(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should.include('"b"=>"2"')
|
152
148
|
end
|
153
149
|
|
154
150
|
end
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: http_request.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 29
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 1
|
8
7
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
8
|
+
- 8
|
9
|
+
version: 1.1.8
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- xianhua.zhou
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2010-
|
17
|
+
date: 2010-09-14 00:00:00 +08:00
|
19
18
|
default_executable:
|
20
19
|
dependencies: []
|
21
20
|
|
@@ -47,7 +46,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
47
46
|
requirements:
|
48
47
|
- - ">="
|
49
48
|
- !ruby/object:Gem::Version
|
50
|
-
hash: 3
|
51
49
|
segments:
|
52
50
|
- 0
|
53
51
|
version: "0"
|
@@ -56,7 +54,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
56
54
|
requirements:
|
57
55
|
- - ">="
|
58
56
|
- !ruby/object:Gem::Version
|
59
|
-
hash: 3
|
60
57
|
segments:
|
61
58
|
- 0
|
62
59
|
version: "0"
|