http_request.rb 1.1.13 → 1.1.14

Sign up to get free protection for your applications and to get access to all the features.
data/Changelog CHANGED
@@ -1,3 +1,7 @@
1
+ v1.1.14
2
+ * fixed openssl warning when work with https
3
+ * passing array of params in :parameters parameter
4
+
1
5
  v1.1.13
2
6
  * fixed cookies parser
3
7
  * join utf-8 and ascii-8 bit form data
data/README.rdoc CHANGED
@@ -24,10 +24,11 @@ The HttpRequest class is based on the 'net/http' and 'net/ftp' libraries, so the
24
24
 
25
25
  include http_request.rb first
26
26
  require '/path/to/http_request.rb'
27
- or install it "gem install http_request.rb", then require 'http_request'
27
+ or install it `gem install http_request.rb`, then `require 'http_request'`
28
28
 
29
29
  get
30
- puts HttpRequest.get('http://www.github.com').body
30
+ puts HttpRequest.get('http://github.com').body
31
+ puts HttpRequest.get('https://github.com').body
31
32
 
32
33
  get with query string, 4 are same
33
34
  puts HttpRequest.get('http://www.google.com/search?hl=en&q=ruby&start=0&sa=N').body
@@ -219,6 +220,7 @@ download multiple files from a directory
219
220
  HttpRequest.head('http://www.ruby-lang.org/').code_200? # true
220
221
 
221
222
  supported methods: code_1xx? code_2xx? code_3xx? code_4xx? code_5xx? code_101? code_200? ...
223
+ or status_1xx? statux_2xx? ...
222
224
 
223
225
  == check whether or not the remote site is available (since v1.0.3)
224
226
 
@@ -241,4 +243,4 @@ download multiple files from a directory
241
243
  bug fixing, testing and testing...
242
244
 
243
245
  == LATEST VERSION
244
- 1.1.13
246
+ 1.1.14
data/lib/http_request.rb CHANGED
@@ -11,14 +11,8 @@
11
11
  #
12
12
  # == Version
13
13
  #
14
- # v1.1.13
15
- #
16
- # Last Change: 29 July, 2012
17
- #
18
- # == Author
19
- #
20
- # xianhua.zhou<xianhua.zhou@gmail.com>
21
- #
14
+ # v1.1.14
15
+ # Last Change: 20 December 2012
22
16
  #
23
17
  require 'cgi'
24
18
  require 'net/http'
@@ -32,7 +26,7 @@ class HttpRequest
32
26
  include Singleton
33
27
  class << self
34
28
  # version
35
- VERSION = '1.1.13'.freeze
29
+ VERSION = '1.1.14'.freeze
36
30
  def version;VERSION;end
37
31
 
38
32
  # available http methods
@@ -310,8 +304,13 @@ class HttpRequest
310
304
  # parse parameters for the options[:parameters] and @uri.query
311
305
  def parse_parameters
312
306
  if @options[:parameters].is_a?(Hash)
313
- @options[:parameters] = @options[:parameters].collect{|k, v|
314
- "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
307
+ @options[:parameters] = @options[:parameters].collect{|k, v|
308
+ unless v.is_a?(Array)
309
+ "#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
310
+ else
311
+ prefix = "#{k}[]"
312
+ v.collect { |value| "#{CGI.escape(prefix)}=#{CGI.escape(value.to_s)}" }.join('&')
313
+ end
315
314
  }.join('&')
316
315
  end
317
316
  @options[:parameters] = '' if @options[:parameters].nil?
@@ -381,7 +380,10 @@ class HttpRequest
381
380
  end
382
381
 
383
382
  # ssl support
384
- http.use_ssl = true if @uri.scheme =~ /^https$/i
383
+ if @uri.scheme =~ /^https$/i
384
+ http.use_ssl = true
385
+ http.verify_mode = OpenSSL::SSL::VERIFY_NONE
386
+ end
385
387
 
386
388
  # sending request and get response
387
389
  send_request http
@@ -110,6 +110,16 @@ describe HttpRequest do
110
110
  hr.get(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should include('"ids"=>{')
111
111
  hr.get(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should include('"a"=>"1"')
112
112
  hr.get(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should include('"b"=>"2"')
113
+
114
+ hr.get(:url => URL + '/get', :parameters => {:ids => ['1', '2']}).body.should == {
115
+ 'ids' => ['1', '2']
116
+ }.inspect
117
+ end
118
+
119
+ it "can work with https" do
120
+ body = hr.get("https://github.com").body
121
+ body.should include('Git')
122
+ body.should include('<!DOCTYPE html>')
113
123
  end
114
124
 
115
125
  it "should work with the post method" do
@@ -155,6 +165,10 @@ describe HttpRequest do
155
165
  hr.post(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should include('"ids"=>{')
156
166
  hr.post(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should include('"a"=>"1"')
157
167
  hr.post(:url => URL + '/get', :parameters => {'ids[a]' => 1, 'ids[b]' => 2}).body.should include('"b"=>"2"')
168
+
169
+ hr.post(:url => URL + '/get', :parameters => {:ids => ['1','2']}).body.should == {
170
+ 'ids' => ['1', '2']
171
+ }.inspect
158
172
  end
159
173
 
160
174
  end
metadata CHANGED
@@ -1,27 +1,22 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: http_request.rb
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.14
4
5
  prerelease:
5
- version: 1.1.13
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - xianhua.zhou
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-07-29 00:00:00 Z
12
+ date: 2012-12-20 00:00:00.000000000 Z
14
13
  dependencies: []
15
-
16
14
  description:
17
15
  email: xianhua.zhou@gmail.com
18
16
  executables: []
19
-
20
17
  extensions: []
21
-
22
18
  extra_rdoc_files: []
23
-
24
- files:
19
+ files:
25
20
  - Changelog
26
21
  - README.rdoc
27
22
  - Gemfile
@@ -31,30 +26,27 @@ files:
31
26
  - spec/web_server.rb
32
27
  homepage: http://github.com/xianhuazhou
33
28
  licenses: []
34
-
35
29
  post_install_message:
36
30
  rdoc_options: []
37
-
38
- require_paths:
31
+ require_paths:
39
32
  - lib
40
- required_ruby_version: !ruby/object:Gem::Requirement
33
+ required_ruby_version: !ruby/object:Gem::Requirement
41
34
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
46
- required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
47
40
  none: false
48
- requirements:
49
- - - ">="
50
- - !ruby/object:Gem::Version
51
- version: "0"
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
52
45
  requirements: []
53
-
54
46
  rubyforge_project: http_request.rb
55
- rubygems_version: 1.8.17
47
+ rubygems_version: 1.8.24
56
48
  signing_key:
57
49
  specification_version: 3
58
- summary: http_request.rb is a small, lightweight, powerful HttpRequest class based on the 'net/http' and 'net/ftp' libraries
50
+ summary: http_request.rb is a small, lightweight, powerful HttpRequest class based
51
+ on the 'net/http' and 'net/ftp' libraries
59
52
  test_files: []
60
-