ez_http 1.0.3 → 1.0.4
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/README.md +97 -19
- data/bin/ezhttp +116 -0
- data/doc/EZHttp.html +548 -74
- data/doc/_index.html +1 -1
- data/doc/file.README.html +104 -20
- data/doc/index.html +104 -20
- data/doc/method_list.html +40 -0
- data/doc/top-level-namespace.html +1 -1
- data/ez_http.gemspec +13 -5
- data/lib/ez_http.rb +2 -118
- data/lib/ez_http/core.rb +205 -0
- data/lib/ez_http/version.rb +3 -0
- metadata +28 -7
data/README.md
CHANGED
@@ -1,37 +1,115 @@
|
|
1
1
|
# EZHttp
|
2
2
|
|
3
|
-
A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.
|
3
|
+
A wrapper for ruby net/http, supports http/https, RESTful methods, headers, certificate and file uploads.
|
4
|
+
It supports both command line and ruby code.
|
4
5
|
|
5
6
|
## How to use it
|
6
7
|
|
7
|
-
|
8
|
+
### Command Line
|
8
9
|
|
9
|
-
|
10
|
-
{"key1"=>"value1"})
|
10
|
+
Send with query string
|
11
11
|
|
12
|
-
|
12
|
+
ezhttp \
|
13
|
+
--url "https://api.twitter.com/1/followers/ids.json" \
|
14
|
+
--method "get" \
|
15
|
+
--data "cursor=-1&screen_name=twitterapi"
|
13
16
|
|
14
|
-
|
15
|
-
"key1=I%27ll+do&key2=He%27+do",
|
16
|
-
"put",
|
17
|
-
"application/x-www-form-urlencoded")
|
17
|
+
Send with query string
|
18
18
|
|
19
|
-
|
19
|
+
ezhttp \
|
20
|
+
--url "https://api.twitter.com/1/followers/ids.json&cursor=-1&screen_name=twitterapi" \
|
21
|
+
--method "get"
|
20
22
|
|
21
|
-
|
22
|
-
{"key1"=>"value1"},
|
23
|
-
"post",
|
24
|
-
{"content-type" => "application/json", "authentication" => "xxxx"})
|
23
|
+
Send with json
|
25
24
|
|
26
|
-
|
25
|
+
ezhttp \
|
26
|
+
--url 'http://127.0.0.1:3000/file/upload_file' \
|
27
|
+
--data '{"name":{"fn":"xxx","ln":"xxx"}}' \
|
28
|
+
--method 'post' \
|
29
|
+
--type 'application/json'
|
27
30
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
+
Send with header
|
32
|
+
|
33
|
+
ezhttp \
|
34
|
+
--url 'https://api.twitter.com/oauth/request_token' \
|
35
|
+
--method 'post' \
|
36
|
+
--header 'Authorization: OAuth oauth_nonce="K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw", oauth_callback="http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1300228849", oauth_consumer_key="OqEqJeafRSF11jBMStrZz", oauth_signature="Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D", oauth_version="1.0"'
|
37
|
+
|
38
|
+
|
39
|
+
Upload file
|
40
|
+
|
41
|
+
ezhttp \
|
42
|
+
--url 'http://127.0.0.1:3000/file/upload_file' \
|
43
|
+
--files 'path_to_file.png'
|
44
|
+
|
45
|
+
Upload multiple files with header
|
46
|
+
|
47
|
+
ezhttp \
|
48
|
+
--url 'http://127.0.0.1:3000/file/upload_file' \
|
49
|
+
--files 'path_to_file1.zip','path_to_file2.jpg' \
|
50
|
+
--header 'authorization:Basic Zvsdwegbdgegsdv0xvsd='
|
51
|
+
|
52
|
+
### Ruby
|
53
|
+
|
54
|
+
Send with encoded query string as data
|
55
|
+
|
56
|
+
# Post request
|
57
|
+
response = EZHttp.Post("https://www.example.com:83/api",
|
58
|
+
"user_id=12345&token=sdfwD12g%7Ecc")
|
59
|
+
|
60
|
+
# Get request
|
61
|
+
response = EZHttp.Get("http://www.example.com/api",
|
62
|
+
"user_id=12345&token=sdfwD12g%7Ecc")
|
63
|
+
|
64
|
+
# OR
|
65
|
+
response = EZHttp.Get("http://www.example.com/api?user_id=12345&token=sdfwD12g%7Ecc")
|
66
|
+
|
67
|
+
Send with hash as data
|
68
|
+
|
69
|
+
# Post request
|
70
|
+
response = EZHttp.Post("https://www.example.com:83/api",
|
71
|
+
{"name1"=>"value", "name2" => "value2"})
|
72
|
+
|
73
|
+
# Put request
|
74
|
+
response = EZHttp.Put("https://www.example.com:83/api",
|
75
|
+
{"name1"=>"value", "name2" => "value2"})
|
76
|
+
|
77
|
+
Send with extra headers
|
78
|
+
|
79
|
+
response = EZHttp.Post("https://www.example.com:83/api",
|
80
|
+
"user_id=12345&token=sdfwD12g%7Ecc",
|
81
|
+
nil,
|
82
|
+
[
|
83
|
+
"authentication:oAuth username=xxx&password=xxx",
|
84
|
+
"other_header:other_values"
|
85
|
+
])
|
86
|
+
|
87
|
+
Send with pem certificate
|
88
|
+
|
89
|
+
response = EZHttp.Delete("https://www.example.com:83/api",
|
90
|
+
{"user_id"=>"12345"},
|
31
91
|
"application/json",
|
92
|
+
nil,
|
32
93
|
"/path_to_cert.pem")
|
33
94
|
|
34
|
-
|
95
|
+
Upload file(s)
|
96
|
+
|
97
|
+
#
|
98
|
+
files = []
|
99
|
+
file = File.open("path_to_file.extension", "rb")
|
100
|
+
files.push({"name" => File.basename(file), "content" => file.read})
|
101
|
+
file.close
|
102
|
+
|
103
|
+
# simply upload file
|
104
|
+
response = EZHttp.Upload("https://www.example.com:83/api",
|
105
|
+
files)
|
106
|
+
|
107
|
+
# upload file with headers
|
108
|
+
response = EZHttp.Upload("https://www.example.com:83/api",
|
109
|
+
files,
|
110
|
+
["authorization:Basic Zvsdwegbdgegsdv0xvsd="])
|
111
|
+
|
112
|
+
Display response
|
35
113
|
|
36
114
|
puts response.body
|
37
115
|
|
data/bin/ezhttp
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
lib = File.expand_path("../../lib/", __FILE__)
|
3
|
+
$LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
|
4
|
+
|
5
|
+
require "optparse"
|
6
|
+
require "ez_http"
|
7
|
+
|
8
|
+
########################################################################################################
|
9
|
+
# get options from user input
|
10
|
+
########################################################################################################
|
11
|
+
options = {}
|
12
|
+
options[:headers] = nil
|
13
|
+
|
14
|
+
optparse = OptionParser.new do |opts|
|
15
|
+
opts.banner = "Send Request: ezhttp --url URL [--data DATA] [--method METHOD] [--type TYPE] [--header HEADERR] [--cert path_to_certificate] \n"
|
16
|
+
opts.banner += "Upload Files: ezhttp --url URL [--files FILE1,FILE2...] [--header HEADERR] [--cert path_to_certificate] \n"
|
17
|
+
|
18
|
+
options[:url] = nil
|
19
|
+
opts.on("-u", "--url URL", "url to send request to") do |d|
|
20
|
+
options[:url] = d
|
21
|
+
end
|
22
|
+
|
23
|
+
options[:data] = nil
|
24
|
+
opts.on("-d", "--data DATA", "encoded query string or stringified json") do |d|
|
25
|
+
options[:data] = d
|
26
|
+
end
|
27
|
+
|
28
|
+
options[:method] = nil
|
29
|
+
opts.on("-m", "--method METHOD", ["get", "post", "put", "delete"], "RESTful method: get/post/put/delete") do |d|
|
30
|
+
options[:method] = d
|
31
|
+
end
|
32
|
+
|
33
|
+
options[:content_type] = nil
|
34
|
+
opts.on("-t", "--type TYPE", "content-type") do |d|
|
35
|
+
options[:content_type] = d
|
36
|
+
end
|
37
|
+
|
38
|
+
opts.on("--header HEADER", "example: authentication:oAuth username=xxx&password=xxx") do |d|
|
39
|
+
puts d
|
40
|
+
options[:headers] = [] if options[:headers].nil?
|
41
|
+
options[:headers].push(d)
|
42
|
+
end
|
43
|
+
|
44
|
+
options[:cert_path] = nil
|
45
|
+
opts.on("-c", "--cert PATH", "path to certificate") do |d|
|
46
|
+
options[:cert_path] = d
|
47
|
+
end
|
48
|
+
|
49
|
+
options[:files] = nil
|
50
|
+
opts.on("-f", "--files FILE1,FILE2...", Array, "list of paths to files") do |d|
|
51
|
+
options[:files] = d
|
52
|
+
end
|
53
|
+
|
54
|
+
opts.on("-h", "--help", "Display this help screen") do
|
55
|
+
puts opts
|
56
|
+
exit
|
57
|
+
end
|
58
|
+
|
59
|
+
opts.on("-v", "--version", "Show version") do |v|
|
60
|
+
puts "ezhttp(aka:ez_http) version #{EZHttp::VERSION}"
|
61
|
+
exit
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
########################################################################################################
|
68
|
+
# parse options
|
69
|
+
########################################################################################################
|
70
|
+
begin
|
71
|
+
optparse.parse!
|
72
|
+
rescue OptionParser::ParseError => pe
|
73
|
+
puts pe.message
|
74
|
+
puts optparse
|
75
|
+
exit
|
76
|
+
end
|
77
|
+
|
78
|
+
if (options[:url].nil? || options[:url].strip.empty?)
|
79
|
+
puts "Required action is not specified"
|
80
|
+
puts optparse
|
81
|
+
exit
|
82
|
+
end
|
83
|
+
|
84
|
+
|
85
|
+
########################################################################################################
|
86
|
+
# send request and retrive response
|
87
|
+
########################################################################################################
|
88
|
+
|
89
|
+
puts " "
|
90
|
+
|
91
|
+
if (!options[:files].nil? && options[:files].length > 0)
|
92
|
+
files = []
|
93
|
+
options[:files].each do |path|
|
94
|
+
file = File.open(path, "rb")
|
95
|
+
name = File.basename(file)
|
96
|
+
content = file.read
|
97
|
+
file.close
|
98
|
+
files.push({"name" => name, "content" => content})
|
99
|
+
end
|
100
|
+
|
101
|
+
response = EZHttp.Upload(options[:url],
|
102
|
+
files,
|
103
|
+
options[:headers],
|
104
|
+
options[:cert_path])
|
105
|
+
else
|
106
|
+
response = EZHttp.Send(options[:url],
|
107
|
+
options[:data],
|
108
|
+
options[:method],
|
109
|
+
options[:content_type],
|
110
|
+
options[:headers],
|
111
|
+
options[:cert_path])
|
112
|
+
end
|
113
|
+
|
114
|
+
|
115
|
+
puts response.body
|
116
|
+
|
data/doc/EZHttp.html
CHANGED
@@ -72,7 +72,9 @@
|
|
72
72
|
|
73
73
|
|
74
74
|
<dt class="r1 last">Defined in:</dt>
|
75
|
-
<dd class="r1 last">lib/ez_http.rb
|
75
|
+
<dd class="r1 last">lib/ez_http/core.rb<span class="defines">,<br />
|
76
|
+
lib/ez_http/version.rb</span>
|
77
|
+
</dd>
|
76
78
|
|
77
79
|
</dl>
|
78
80
|
<div class="clear"></div>
|
@@ -80,36 +82,8 @@
|
|
80
82
|
<h2>Overview</h2><div class="docstring">
|
81
83
|
<div class="discussion">
|
82
84
|
|
83
|
-
<p>A wrapper for ruby net/http, supports http/https, RESTful methods,
|
84
|
-
certificate
|
85
|
-
|
86
|
-
<pre class="code ruby"><code><span class='const'>How</span> <span class='id identifier rubyid_to'>to</span> <span class='label'>use:</span>
|
87
|
-
|
88
|
-
<span class='comment'># send a post request to specified url with the json as data
|
89
|
-
</span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
90
|
-
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>key1</span><span class='tstring_end'>"</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value1</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
91
|
-
|
92
|
-
<span class='comment'># send a put request to specified url with encoded query string params as data
|
93
|
-
</span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
94
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>key1=I%27ll+do&key2=He%27+do</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
95
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>put</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
96
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>application/x-www-form-urlencoded</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
97
|
-
|
98
|
-
<span class='comment'># specify extra headers
|
99
|
-
</span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
100
|
-
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>key1</span><span class='tstring_end'>"</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value1</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
|
101
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
102
|
-
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content-type</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>application/json</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>authentication</span><span class='tstring_end'>"</span></span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>xxxx</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
|
103
|
-
|
104
|
-
<span class='comment'># use certificate
|
105
|
-
</span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='const'>EZHttp</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
106
|
-
<span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>key1</span><span class='tstring_end'>"</span></span><span class='op'>=></span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>value1</span><span class='tstring_end'>"</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
|
107
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
108
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>application/json</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
109
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>/path_to_cert.pem</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
110
|
-
|
111
|
-
<span class='comment'># display raw response
|
112
|
-
</span> <span class='id identifier rubyid_puts'>puts</span> <span class='id identifier rubyid_response'>response</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span></code></pre>
|
85
|
+
<p>A wrapper for ruby net/http, supports http/https, RESTful methods, headers,
|
86
|
+
certificate</p>
|
113
87
|
|
114
88
|
|
115
89
|
</div>
|
@@ -134,6 +108,18 @@ certificate.</p>
|
|
134
108
|
</ul>
|
135
109
|
|
136
110
|
</div>
|
111
|
+
<h2>Constant Summary</h2>
|
112
|
+
|
113
|
+
<dl class="constants">
|
114
|
+
|
115
|
+
<dt id="VERSION-constant" class="">VERSION =
|
116
|
+
|
117
|
+
</dt>
|
118
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>1.0.4</span><span class='tstring_end'>"</span></span></pre></dd>
|
119
|
+
|
120
|
+
</dl>
|
121
|
+
|
122
|
+
|
137
123
|
|
138
124
|
|
139
125
|
|
@@ -151,7 +137,91 @@ certificate.</p>
|
|
151
137
|
<li class="public ">
|
152
138
|
<span class="summary_signature">
|
153
139
|
|
154
|
-
<a href="#
|
140
|
+
<a href="#Delete-class_method" title="Delete (class method)">+ (Object) <strong>Delete</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil) </a>
|
141
|
+
|
142
|
+
|
143
|
+
|
144
|
+
</span>
|
145
|
+
|
146
|
+
|
147
|
+
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
154
|
+
|
155
|
+
</li>
|
156
|
+
|
157
|
+
|
158
|
+
<li class="public ">
|
159
|
+
<span class="summary_signature">
|
160
|
+
|
161
|
+
<a href="#Get-class_method" title="Get (class method)">+ (Object) <strong>Get</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil) </a>
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
</span>
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
|
174
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
175
|
+
|
176
|
+
</li>
|
177
|
+
|
178
|
+
|
179
|
+
<li class="public ">
|
180
|
+
<span class="summary_signature">
|
181
|
+
|
182
|
+
<a href="#Post-class_method" title="Post (class method)">+ (Object) <strong>Post</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil) </a>
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
</span>
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
196
|
+
|
197
|
+
</li>
|
198
|
+
|
199
|
+
|
200
|
+
<li class="public ">
|
201
|
+
<span class="summary_signature">
|
202
|
+
|
203
|
+
<a href="#Put-class_method" title="Put (class method)">+ (Object) <strong>Put</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil) </a>
|
204
|
+
|
205
|
+
|
206
|
+
|
207
|
+
</span>
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
217
|
+
|
218
|
+
</li>
|
219
|
+
|
220
|
+
|
221
|
+
<li class="public ">
|
222
|
+
<span class="summary_signature">
|
223
|
+
|
224
|
+
<a href="#Send-class_method" title="Send (class method)">+ (Net::HTTPResponse) <strong>Send</strong>(url, data = nil, method = nil, content_type = nil, headers = nil, cert_path = nil) </a>
|
155
225
|
|
156
226
|
|
157
227
|
|
@@ -168,6 +238,29 @@ certificate.</p>
|
|
168
238
|
<p>Send http request to specified url and return responses.</p>
|
169
239
|
</div></span>
|
170
240
|
|
241
|
+
</li>
|
242
|
+
|
243
|
+
|
244
|
+
<li class="public ">
|
245
|
+
<span class="summary_signature">
|
246
|
+
|
247
|
+
<a href="#Upload-class_method" title="Upload (class method)">+ (Object) <strong>Upload</strong>(url, files, headers = nil, cert_path = nil) </a>
|
248
|
+
|
249
|
+
|
250
|
+
|
251
|
+
</span>
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
<span class="summary_desc"><div class='inline'>
|
261
|
+
<p>Upload files.</p>
|
262
|
+
</div></span>
|
263
|
+
|
171
264
|
</li>
|
172
265
|
|
173
266
|
|
@@ -181,9 +274,121 @@ certificate.</p>
|
|
181
274
|
|
182
275
|
|
183
276
|
<div class="method_details first">
|
184
|
-
<p class="signature first" id="
|
277
|
+
<p class="signature first" id="Delete-class_method">
|
278
|
+
|
279
|
+
+ (<tt>Object</tt>) <strong>Delete</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil)
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
</p><table class="source_code">
|
284
|
+
<tr>
|
285
|
+
<td>
|
286
|
+
<pre class="lines">
|
287
|
+
|
288
|
+
|
289
|
+
126
|
290
|
+
127
|
291
|
+
128</pre>
|
292
|
+
</td>
|
293
|
+
<td>
|
294
|
+
<pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 126</span>
|
295
|
+
|
296
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Delete</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
|
297
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>delete</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
|
298
|
+
<span class='kw'>end</span></pre>
|
299
|
+
</td>
|
300
|
+
</tr>
|
301
|
+
</table>
|
302
|
+
</div>
|
303
|
+
|
304
|
+
<div class="method_details ">
|
305
|
+
<p class="signature " id="Get-class_method">
|
306
|
+
|
307
|
+
+ (<tt>Object</tt>) <strong>Get</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil)
|
308
|
+
|
309
|
+
|
310
|
+
|
311
|
+
</p><table class="source_code">
|
312
|
+
<tr>
|
313
|
+
<td>
|
314
|
+
<pre class="lines">
|
315
|
+
|
316
|
+
|
317
|
+
118
|
318
|
+
119
|
319
|
+
120</pre>
|
320
|
+
</td>
|
321
|
+
<td>
|
322
|
+
<pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 118</span>
|
323
|
+
|
324
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Get</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
|
325
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>get</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
|
326
|
+
<span class='kw'>end</span></pre>
|
327
|
+
</td>
|
328
|
+
</tr>
|
329
|
+
</table>
|
330
|
+
</div>
|
331
|
+
|
332
|
+
<div class="method_details ">
|
333
|
+
<p class="signature " id="Post-class_method">
|
334
|
+
|
335
|
+
+ (<tt>Object</tt>) <strong>Post</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil)
|
336
|
+
|
337
|
+
|
338
|
+
|
339
|
+
</p><table class="source_code">
|
340
|
+
<tr>
|
341
|
+
<td>
|
342
|
+
<pre class="lines">
|
343
|
+
|
344
|
+
|
345
|
+
114
|
346
|
+
115
|
347
|
+
116</pre>
|
348
|
+
</td>
|
349
|
+
<td>
|
350
|
+
<pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 114</span>
|
351
|
+
|
352
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Post</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
|
353
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
|
354
|
+
<span class='kw'>end</span></pre>
|
355
|
+
</td>
|
356
|
+
</tr>
|
357
|
+
</table>
|
358
|
+
</div>
|
359
|
+
|
360
|
+
<div class="method_details ">
|
361
|
+
<p class="signature " id="Put-class_method">
|
362
|
+
|
363
|
+
+ (<tt>Object</tt>) <strong>Put</strong>(url, data = nil, content_type = nil, headers = nil, cert_path = nil)
|
185
364
|
|
186
|
-
|
365
|
+
|
366
|
+
|
367
|
+
</p><table class="source_code">
|
368
|
+
<tr>
|
369
|
+
<td>
|
370
|
+
<pre class="lines">
|
371
|
+
|
372
|
+
|
373
|
+
122
|
374
|
+
123
|
375
|
+
124</pre>
|
376
|
+
</td>
|
377
|
+
<td>
|
378
|
+
<pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 122</span>
|
379
|
+
|
380
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Put</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
|
381
|
+
<span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>put</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
|
382
|
+
<span class='kw'>end</span></pre>
|
383
|
+
</td>
|
384
|
+
</tr>
|
385
|
+
</table>
|
386
|
+
</div>
|
387
|
+
|
388
|
+
<div class="method_details ">
|
389
|
+
<p class="signature " id="Send-class_method">
|
390
|
+
|
391
|
+
+ (<tt>Net::HTTPResponse</tt>) <strong>Send</strong>(url, data = nil, method = nil, content_type = nil, headers = nil, cert_path = nil)
|
187
392
|
|
188
393
|
|
189
394
|
|
@@ -226,7 +431,7 @@ certificate.</p>
|
|
226
431
|
|
227
432
|
—
|
228
433
|
<div class='inline'>
|
229
|
-
<p>to send</p>
|
434
|
+
<p>hash to send or encoded query string or stringified hash</p>
|
230
435
|
</div>
|
231
436
|
|
232
437
|
</li>
|
@@ -247,18 +452,35 @@ certificate.</p>
|
|
247
452
|
|
248
453
|
</li>
|
249
454
|
|
455
|
+
<li>
|
456
|
+
|
457
|
+
<span class='name'>content_type:</span>
|
458
|
+
|
459
|
+
|
460
|
+
<span class='type'>(<tt>String</tt>)</span>
|
461
|
+
|
462
|
+
|
463
|
+
|
464
|
+
—
|
465
|
+
<div class='inline'>
|
466
|
+
<p>ie."application/json"</p>
|
467
|
+
</div>
|
468
|
+
|
469
|
+
</li>
|
470
|
+
|
250
471
|
<li>
|
251
472
|
|
252
473
|
<span class='name'>headers:</span>
|
253
474
|
|
254
475
|
|
255
|
-
<span class='type'>(<tt>
|
476
|
+
<span class='type'>(<tt>Array[String]</tt>)</span>
|
256
477
|
|
257
478
|
|
258
479
|
|
259
480
|
—
|
260
481
|
<div class='inline'>
|
261
|
-
<p>
|
482
|
+
<p>is an array of Strings, <a
|
483
|
+
href=""encoded_key:encoded_value","content-type:application/json"">ie.</a>;</p>
|
262
484
|
</div>
|
263
485
|
|
264
486
|
</li>
|
@@ -274,7 +496,7 @@ certificate.</p>
|
|
274
496
|
|
275
497
|
—
|
276
498
|
<div class='inline'>
|
277
|
-
<p>to the certificate file, set nil if none</p>
|
499
|
+
<p>to the certificate file, don't specify or set nil if none</p>
|
278
500
|
</div>
|
279
501
|
|
280
502
|
</li>
|
@@ -293,8 +515,7 @@ certificate.</p>
|
|
293
515
|
|
294
516
|
—
|
295
517
|
<div class='inline'>
|
296
|
-
<p>response from remote server, example to access its fields: response.body
|
297
|
-
response.status</p>
|
518
|
+
<p>response from remote server, example to access its fields: response.body</p>
|
298
519
|
</div>
|
299
520
|
|
300
521
|
</li>
|
@@ -307,6 +528,29 @@ response.status</p>
|
|
307
528
|
<pre class="lines">
|
308
529
|
|
309
530
|
|
531
|
+
23
|
532
|
+
24
|
533
|
+
25
|
534
|
+
26
|
535
|
+
27
|
536
|
+
28
|
537
|
+
29
|
538
|
+
30
|
539
|
+
31
|
540
|
+
32
|
541
|
+
33
|
542
|
+
34
|
543
|
+
35
|
544
|
+
36
|
545
|
+
37
|
546
|
+
38
|
547
|
+
39
|
548
|
+
40
|
549
|
+
41
|
550
|
+
42
|
551
|
+
43
|
552
|
+
44
|
553
|
+
45
|
310
554
|
46
|
311
555
|
47
|
312
556
|
48
|
@@ -372,36 +616,28 @@ response.status</p>
|
|
372
616
|
108
|
373
617
|
109
|
374
618
|
110
|
375
|
-
111
|
376
|
-
112
|
377
|
-
113
|
378
|
-
114
|
379
|
-
115
|
380
|
-
116
|
381
|
-
117
|
382
|
-
118</pre>
|
619
|
+
111</pre>
|
383
620
|
</td>
|
384
621
|
<td>
|
385
|
-
<pre class="code"><span class="info file"># File 'lib/ez_http.rb', line
|
622
|
+
<pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 23</span>
|
386
623
|
|
387
|
-
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='
|
624
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Send</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_method'>method</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
|
388
625
|
|
389
|
-
<span class='
|
390
|
-
|
626
|
+
<span class='kw'>begin</span>
|
627
|
+
<span class='comment'># Parse url
|
628
|
+
</span> <span class='id identifier rubyid_url'>url</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
|
391
629
|
<span class='id identifier rubyid_uri'>uri</span> <span class='op'>=</span> <span class='const'>URI</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='rparen'>)</span>
|
392
630
|
<span class='id identifier rubyid_http'>http</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span><span class='rparen'>)</span>
|
393
631
|
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^https</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
|
394
632
|
<span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_use_ssl'>use_ssl</span> <span class='op'>=</span> <span class='kw'>true</span>
|
395
633
|
<span class='kw'>end</span>
|
396
|
-
<span class='kw'>rescue</span>
|
397
|
-
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Error in url</span><span class='tstring_end'>"</span></span>
|
398
|
-
<span class='kw'>end</span>
|
399
634
|
|
400
|
-
|
401
|
-
|
402
|
-
</span>
|
403
|
-
<span class='id identifier
|
404
|
-
<span class='
|
635
|
+
<span class='comment'># Create request
|
636
|
+
</span> <span class='id identifier rubyid_request_method'>request_method</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>get</span><span class='tstring_end'>"</span></span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span>
|
637
|
+
<span class='id identifier rubyid_request_method'>request_method</span> <span class='op'>=</span> <span class='id identifier rubyid_method'>method</span> <span class='op'>||</span> <span class='id identifier rubyid_request_method'>request_method</span>
|
638
|
+
<span class='id identifier rubyid_request_method'>request_method</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
|
639
|
+
<span class='id identifier rubyid_request_method'>request_method</span><span class='period'>.</span><span class='id identifier rubyid_downcase!'>downcase!</span>
|
640
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_request_method'>request_method</span>
|
405
641
|
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span>
|
406
642
|
<span class='id identifier rubyid_request'>request</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='op'>::</span><span class='const'>Post</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_request_uri'>request_uri</span><span class='rparen'>)</span>
|
407
643
|
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>get</span><span class='tstring_end'>"</span></span>
|
@@ -413,29 +649,269 @@ response.status</p>
|
|
413
649
|
<span class='kw'>else</span>
|
414
650
|
<span class='id identifier rubyid_request'>request</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='op'>::</span><span class='const'>Post</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_request_uri'>request_uri</span><span class='rparen'>)</span>
|
415
651
|
<span class='kw'>end</span>
|
652
|
+
<span class='kw'>rescue</span>
|
653
|
+
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Error in creating request</span><span class='tstring_end'>"</span></span>
|
654
|
+
<span class='kw'>end</span>
|
416
655
|
|
417
|
-
<span class='comment'># Set form data
|
418
|
-
</span> <span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_set_form_data'>set_form_data</span><span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='rparen'>)</span>
|
419
656
|
|
420
|
-
|
421
|
-
</span>
|
657
|
+
<span class='comment'># Set content-type
|
658
|
+
</span> <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content-type</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span> <span class='kw'>unless</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
422
659
|
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
660
|
+
|
661
|
+
<span class='comment'># Set data (can be json or encoded query string)
|
662
|
+
</span> <span class='kw'>begin</span>
|
663
|
+
<span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
|
664
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_class'>class</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Hash</span><span class='tstring_end'>"</span></span> <span class='op'>||</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>merge</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
|
665
|
+
<span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_to_json'>to_json</span>
|
666
|
+
<span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content-type</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>application/json</span><span class='tstring_end'>"</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content-type</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
667
|
+
<span class='kw'>else</span>
|
668
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>{</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
|
669
|
+
<span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content-type</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>application/json</span><span class='tstring_end'>"</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content-type</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
428
670
|
<span class='kw'>end</span>
|
671
|
+
<span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
|
672
|
+
<span class='comment'>#request["content-type"] = "application/x-www-form-urlencoded" if request["content-type"].nil?
|
673
|
+
</span> <span class='kw'>end</span>
|
674
|
+
<span class='kw'>end</span>
|
675
|
+
<span class='kw'>rescue</span>
|
676
|
+
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Error in parsing data</span><span class='tstring_end'>"</span></span>
|
677
|
+
<span class='kw'>end</span>
|
678
|
+
|
679
|
+
|
680
|
+
<span class='comment'># Set headers
|
681
|
+
</span> <span class='kw'>begin</span>
|
682
|
+
<span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
|
683
|
+
<span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_header'>header</span><span class='op'>|</span>
|
684
|
+
<span class='id identifier rubyid_key'>key</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>:</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
|
685
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>:</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span>
|
686
|
+
<span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
|
429
687
|
<span class='kw'>end</span>
|
688
|
+
<span class='kw'>end</span>
|
689
|
+
<span class='kw'>rescue</span>
|
690
|
+
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Error in parsing headers</span><span class='tstring_end'>"</span></span>
|
691
|
+
<span class='kw'>end</span>
|
692
|
+
|
693
|
+
|
694
|
+
<span class='comment'># Add cert if any
|
695
|
+
</span> <span class='kw'>begin</span>
|
696
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_cert_path'>cert_path</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
|
697
|
+
<span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_verify_mode'>verify_mode</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>SSL</span><span class='op'>::</span><span class='const'>VERIFY_NONE</span>
|
430
698
|
<span class='kw'>else</span>
|
431
|
-
<span class='id identifier
|
432
|
-
<span class='id identifier
|
699
|
+
<span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_use_ssl'>use_ssl</span> <span class='op'>=</span> <span class='kw'>true</span>
|
700
|
+
<span class='id identifier rubyid_pem'>pem</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='lparen'>(</span><span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
|
701
|
+
<span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_cert'>cert</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>X509</span><span class='op'>::</span><span class='const'>Certificate</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_pem'>pem</span><span class='rparen'>)</span>
|
702
|
+
<span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_key'>key</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>PKey</span><span class='op'>::</span><span class='const'>RSA</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_pem'>pem</span><span class='rparen'>)</span>
|
703
|
+
<span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_verify_mode'>verify_mode</span> <span class='op'>=</span> <span class='const'>OpenSSL</span><span class='op'>::</span><span class='const'>SSL</span><span class='op'>::</span><span class='const'>VERIFY_PEER</span>
|
433
704
|
<span class='kw'>end</span>
|
705
|
+
<span class='kw'>rescue</span>
|
706
|
+
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Error in creating certificate</span><span class='tstring_end'>"</span></span>
|
707
|
+
<span class='kw'>end</span>
|
708
|
+
|
709
|
+
<span class='comment'># Send request and return response
|
710
|
+
</span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_request'>request</span><span class='lparen'>(</span><span class='id identifier rubyid_request'>request</span><span class='rparen'>)</span>
|
711
|
+
|
712
|
+
<span class='kw'>end</span></pre>
|
713
|
+
</td>
|
714
|
+
</tr>
|
715
|
+
</table>
|
716
|
+
</div>
|
717
|
+
|
718
|
+
<div class="method_details ">
|
719
|
+
<p class="signature " id="Upload-class_method">
|
720
|
+
|
721
|
+
+ (<tt>Object</tt>) <strong>Upload</strong>(url, files, headers = nil, cert_path = nil)
|
722
|
+
|
434
723
|
|
724
|
+
|
725
|
+
</p><div class="docstring">
|
726
|
+
<div class="discussion">
|
727
|
+
|
728
|
+
<p>Upload files</p>
|
729
|
+
|
730
|
+
|
731
|
+
</div>
|
732
|
+
</div>
|
733
|
+
<div class="tags">
|
734
|
+
<h3>Parameters:</h3>
|
735
|
+
<ul class="param">
|
736
|
+
|
737
|
+
<li>
|
738
|
+
|
739
|
+
<span class='name'>url:</span>
|
740
|
+
|
741
|
+
|
742
|
+
<span class='type'>(<tt>String</tt>)</span>
|
743
|
+
|
744
|
+
|
745
|
+
|
746
|
+
—
|
747
|
+
<div class='inline'>
|
748
|
+
<p>server to upload</p>
|
749
|
+
</div>
|
750
|
+
|
751
|
+
</li>
|
752
|
+
|
753
|
+
<li>
|
754
|
+
|
755
|
+
<span class='name'>files:</span>
|
756
|
+
|
757
|
+
|
758
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
759
|
+
|
760
|
+
|
761
|
+
|
762
|
+
—
|
763
|
+
<div class='inline'><dl class="rdoc-list"><dt>"name","content"</dt>
|
764
|
+
<dd></dd></dl>
|
765
|
+
</div>
|
766
|
+
|
767
|
+
</li>
|
768
|
+
|
769
|
+
<li>
|
770
|
+
|
771
|
+
<span class='name'>headers:</span>
|
772
|
+
|
773
|
+
|
774
|
+
<span class='type'>(<tt>Array[String]</tt>)</span>
|
775
|
+
|
776
|
+
|
777
|
+
|
778
|
+
—
|
779
|
+
<div class='inline'>
|
780
|
+
<p>is an array of Strings, ie.["authorization:Basic twwtws33vsfesfsd=="];</p>
|
781
|
+
</div>
|
782
|
+
|
783
|
+
</li>
|
784
|
+
|
785
|
+
</ul>
|
786
|
+
|
787
|
+
|
788
|
+
</div><table class="source_code">
|
789
|
+
<tr>
|
790
|
+
<td>
|
791
|
+
<pre class="lines">
|
792
|
+
|
793
|
+
|
794
|
+
135
|
795
|
+
136
|
796
|
+
137
|
797
|
+
138
|
798
|
+
139
|
799
|
+
140
|
800
|
+
141
|
801
|
+
142
|
802
|
+
143
|
803
|
+
144
|
804
|
+
145
|
805
|
+
146
|
806
|
+
147
|
807
|
+
148
|
808
|
+
149
|
809
|
+
150
|
810
|
+
151
|
811
|
+
152
|
812
|
+
153
|
813
|
+
154
|
814
|
+
155
|
815
|
+
156
|
816
|
+
157
|
817
|
+
158
|
818
|
+
159
|
819
|
+
160
|
820
|
+
161
|
821
|
+
162
|
822
|
+
163
|
823
|
+
164
|
824
|
+
165
|
825
|
+
166
|
826
|
+
167
|
827
|
+
168
|
828
|
+
169
|
829
|
+
170
|
830
|
+
171
|
831
|
+
172
|
832
|
+
173
|
833
|
+
174
|
834
|
+
175
|
835
|
+
176
|
836
|
+
177
|
837
|
+
178
|
838
|
+
179
|
839
|
+
180
|
840
|
+
181
|
841
|
+
182
|
842
|
+
183
|
843
|
+
184
|
844
|
+
185
|
845
|
+
186
|
846
|
+
187
|
847
|
+
188
|
848
|
+
189
|
849
|
+
190
|
850
|
+
191
|
851
|
+
192
|
852
|
+
193
|
853
|
+
194
|
854
|
+
195
|
855
|
+
196
|
856
|
+
197
|
857
|
+
198
|
858
|
+
199
|
859
|
+
200
|
860
|
+
201
|
861
|
+
202</pre>
|
862
|
+
</td>
|
863
|
+
<td>
|
864
|
+
<pre class="code"><span class="info file"># File 'lib/ez_http/core.rb', line 135</span>
|
865
|
+
|
866
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='const'>Upload</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_files'>files</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='op'>=</span><span class='kw'>nil</span><span class='rparen'>)</span>
|
867
|
+
|
868
|
+
<span class='kw'>begin</span>
|
869
|
+
<span class='comment'># Parse url
|
870
|
+
</span> <span class='id identifier rubyid_url'>url</span><span class='period'>.</span><span class='id identifier rubyid_strip!'>strip!</span>
|
871
|
+
<span class='id identifier rubyid_uri'>uri</span> <span class='op'>=</span> <span class='const'>URI</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='rparen'>)</span>
|
872
|
+
<span class='id identifier rubyid_http'>http</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_host'>host</span><span class='comma'>,</span> <span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_port'>port</span><span class='rparen'>)</span>
|
873
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>^https</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span><span class='rparen'>)</span>
|
874
|
+
<span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_use_ssl'>use_ssl</span> <span class='op'>=</span> <span class='kw'>true</span>
|
875
|
+
<span class='kw'>end</span>
|
876
|
+
|
877
|
+
<span class='comment'># Create request
|
878
|
+
</span> <span class='id identifier rubyid_request'>request</span> <span class='op'>=</span> <span class='const'>Net</span><span class='op'>::</span><span class='const'>HTTP</span><span class='op'>::</span><span class='const'>Post</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_uri'>uri</span><span class='period'>.</span><span class='id identifier rubyid_request_uri'>request_uri</span><span class='rparen'>)</span>
|
435
879
|
<span class='kw'>rescue</span>
|
436
880
|
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Error in creating request</span><span class='tstring_end'>"</span></span>
|
437
881
|
<span class='kw'>end</span>
|
438
882
|
|
883
|
+
<span class='comment'># Set headers
|
884
|
+
</span> <span class='kw'>begin</span>
|
885
|
+
<span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span><span class='rparen'>)</span>
|
886
|
+
<span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_header'>header</span><span class='op'>|</span>
|
887
|
+
<span class='id identifier rubyid_key'>key</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>:</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
|
888
|
+
<span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_header'>header</span><span class='period'>.</span><span class='id identifier rubyid_split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>:</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='lbracket'>[</span><span class='int'>1</span><span class='rbracket'>]</span>
|
889
|
+
<span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
|
890
|
+
<span class='kw'>end</span>
|
891
|
+
<span class='kw'>end</span>
|
892
|
+
<span class='kw'>rescue</span>
|
893
|
+
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Error in parsing headers</span><span class='tstring_end'>"</span></span>
|
894
|
+
<span class='kw'>end</span>
|
895
|
+
|
896
|
+
<span class='comment'># Create files
|
897
|
+
</span> <span class='id identifier rubyid_boundry'>boundry</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--content--boundry--keybegin--AaB03sfwegSFSWxGBgSBsFDYcRcRMi--keyend--</span><span class='tstring_end'>"</span></span>
|
898
|
+
<span class='id identifier rubyid_post_body'>post_body</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
899
|
+
|
900
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_files'>files</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&&</span> <span class='id identifier rubyid_files'>files</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>></span> <span class='int'>0</span><span class='rparen'>)</span>
|
901
|
+
<span class='id identifier rubyid_files'>files</span><span class='period'>.</span><span class='id identifier rubyid_each_with_index'>each_with_index</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_file'>file</span><span class='comma'>,</span> <span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
|
902
|
+
<span class='id identifier rubyid_post_body'>post_body</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_boundry'>boundry</span><span class='rbrace'>}</span><span class='tstring_content'>\r\n</span><span class='tstring_end'>"</span></span>
|
903
|
+
<span class='id identifier rubyid_post_body'>post_body</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content-disposition: form-data; name=\"upload[file</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_i'>i</span><span class='rbrace'>}</span><span class='tstring_content'>]\"; filename=\"</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_file'>file</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>name</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='rbrace'>}</span><span class='tstring_content'>\"\r\n</span><span class='tstring_end'>"</span></span>
|
904
|
+
<span class='id identifier rubyid_post_body'>post_body</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content-type: application/octet-stream\r\n</span><span class='tstring_end'>"</span></span>
|
905
|
+
<span class='id identifier rubyid_post_body'>post_body</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>\r\n</span><span class='tstring_end'>"</span></span>
|
906
|
+
<span class='id identifier rubyid_post_body'>post_body</span> <span class='op'><<</span> <span class='id identifier rubyid_file'>file</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>\r\n</span><span class='tstring_end'>"</span></span>
|
907
|
+
<span class='kw'>end</span>
|
908
|
+
<span class='id identifier rubyid_post_body'>post_body</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>--</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_boundry'>boundry</span><span class='rbrace'>}</span><span class='tstring_content'>--\r\n</span><span class='tstring_end'>"</span></span>
|
909
|
+
|
910
|
+
<span class='id identifier rubyid_request'>request</span><span class='period'>.</span><span class='id identifier rubyid_body'>body</span> <span class='op'>=</span> <span class='id identifier rubyid_post_body'>post_body</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span>
|
911
|
+
<span class='kw'>end</span>
|
912
|
+
|
913
|
+
<span class='comment'># Set content type
|
914
|
+
</span> <span class='id identifier rubyid_request'>request</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>content-type</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>multipart/form-data, boundary=</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_boundry'>boundry</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
439
915
|
|
440
916
|
<span class='comment'># Add cert if any
|
441
917
|
</span> <span class='kw'>begin</span>
|
@@ -452,10 +928,8 @@ response.status</p>
|
|
452
928
|
<span class='id identifier rubyid_throw'>throw</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Error in creating certificate</span><span class='tstring_end'>"</span></span>
|
453
929
|
<span class='kw'>end</span>
|
454
930
|
|
455
|
-
|
456
931
|
<span class='comment'># Send request and return response
|
457
932
|
</span> <span class='id identifier rubyid_response'>response</span> <span class='op'>=</span> <span class='id identifier rubyid_http'>http</span><span class='period'>.</span><span class='id identifier rubyid_request'>request</span><span class='lparen'>(</span><span class='id identifier rubyid_request'>request</span><span class='rparen'>)</span>
|
458
|
-
|
459
933
|
<span class='kw'>end</span></pre>
|
460
934
|
</td>
|
461
935
|
</tr>
|
@@ -467,7 +941,7 @@ response.status</p>
|
|
467
941
|
</div>
|
468
942
|
|
469
943
|
<div id="footer">
|
470
|
-
Generated on
|
944
|
+
Generated on Mon Apr 16 02:15:47 2012 by
|
471
945
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
472
946
|
0.7.5 (ruby-1.9.3).
|
473
947
|
</div>
|