ez_http 1.0.2 → 1.0.3
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/LICENSE +20 -0
- data/README.md +40 -13
- data/doc/EZHttp.html +159 -69
- data/doc/_index.html +1 -1
- data/doc/file.README.html +47 -10
- data/doc/index.html +47 -10
- data/doc/top-level-namespace.html +1 -1
- data/ez_http.gemspec +3 -3
- data/lib/ez_http.rb +58 -33
- metadata +4 -4
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2012 Tianyu Huang
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,27 +1,54 @@
|
|
1
1
|
# EZHttp
|
2
2
|
|
3
|
-
A
|
3
|
+
A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.
|
4
4
|
|
5
5
|
## How to use it
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
send a post request to specified url with the json as data
|
8
|
+
|
9
|
+
response = EZHttp.Send("https://www.example.com:83/api",
|
10
|
+
{"key1"=>"value1"})
|
11
|
+
|
12
|
+
send a put request to specified url with encoded query string params as data
|
13
|
+
|
14
|
+
response = EZHttp.Send("https://www.example.com:83/api",
|
15
|
+
"key1=I%27ll+do&key2=He%27+do",
|
16
|
+
"put",
|
17
|
+
"application/x-www-form-urlencoded")
|
18
|
+
|
19
|
+
specify extra headers
|
20
|
+
|
21
|
+
response = EZHttp.Send("https://www.example.com:83/api",
|
22
|
+
{"key1"=>"value1"},
|
23
|
+
"post",
|
24
|
+
{"content-type" => "application/json", "authentication" => "xxxx"})
|
25
|
+
|
26
|
+
use certificate
|
27
|
+
|
28
|
+
response = EZHttp.Send("https://www.example.com:83/api",
|
29
|
+
{"key1"=>"value1"},
|
30
|
+
"post",
|
31
|
+
"application/json",
|
32
|
+
"/path_to_cert.pem")
|
33
|
+
|
34
|
+
display raw response
|
35
|
+
|
14
36
|
puts response.body
|
15
37
|
|
16
38
|
## Installation
|
17
39
|
|
18
|
-
Add the following line to
|
40
|
+
Add the following line to rails "Gemfile"
|
41
|
+
|
19
42
|
gem "ez_http"
|
20
|
-
|
43
|
+
|
44
|
+
then execute
|
21
45
|
|
22
|
-
|
23
|
-
[http://rubygems.org/gems/ez_http](http://rubygems.org/gems/ez_htt "EZHttp RubyGem Page")
|
46
|
+
$ bundle install
|
24
47
|
|
25
|
-
|
48
|
+
|
49
|
+
See [http://rubygems.org/gems/ez_http](http://rubygems.org/gems/ez_http "EZHttp RubyGem Page") for more details
|
50
|
+
|
51
|
+
## Authors
|
26
52
|
|
27
53
|
Tianyu Huang
|
54
|
+
|
data/doc/EZHttp.html
CHANGED
@@ -80,12 +80,36 @@
|
|
80
80
|
<h2>Overview</h2><div class="docstring">
|
81
81
|
<div class="discussion">
|
82
82
|
|
83
|
-
<p>A
|
84
|
-
certificate
|
83
|
+
<p>A wrapper for ruby net/http, supports http/https, RESTful methods,
|
84
|
+
certificate.</p>
|
85
85
|
|
86
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='
|
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>
|
89
113
|
|
90
114
|
|
91
115
|
</div>
|
@@ -127,7 +151,7 @@ certificate), post/get requests, one method call does everything.</p>
|
|
127
151
|
<li class="public ">
|
128
152
|
<span class="summary_signature">
|
129
153
|
|
130
|
-
<a href="#Send-class_method" title="Send (class method)">+ (Net::HTTPResponse) <strong>Send</strong>(url,
|
154
|
+
<a href="#Send-class_method" title="Send (class method)">+ (Net::HTTPResponse) <strong>Send</strong>(url, data, method = "post", headers = {"content-type" => "application/json"}, cert_path = nil) </a>
|
131
155
|
|
132
156
|
|
133
157
|
|
@@ -141,7 +165,7 @@ certificate), post/get requests, one method call does everything.</p>
|
|
141
165
|
|
142
166
|
|
143
167
|
<span class="summary_desc"><div class='inline'>
|
144
|
-
<p>Send request to specified url and
|
168
|
+
<p>Send http request to specified url and return responses.</p>
|
145
169
|
</div></span>
|
146
170
|
|
147
171
|
</li>
|
@@ -159,14 +183,14 @@ certificate), post/get requests, one method call does everything.</p>
|
|
159
183
|
<div class="method_details first">
|
160
184
|
<p class="signature first" id="Send-class_method">
|
161
185
|
|
162
|
-
+ (<tt>Net::HTTPResponse</tt>) <strong>Send</strong>(url,
|
186
|
+
+ (<tt>Net::HTTPResponse</tt>) <strong>Send</strong>(url, data, method = "post", headers = {"content-type" => "application/json"}, cert_path = nil)
|
163
187
|
|
164
188
|
|
165
189
|
|
166
190
|
</p><div class="docstring">
|
167
191
|
<div class="discussion">
|
168
192
|
|
169
|
-
<p>Send request to specified url and
|
193
|
+
<p>Send http request to specified url and return responses</p>
|
170
194
|
|
171
195
|
|
172
196
|
</div>
|
@@ -193,48 +217,48 @@ certificate), post/get requests, one method call does everything.</p>
|
|
193
217
|
|
194
218
|
<li>
|
195
219
|
|
196
|
-
<span class='name'>
|
220
|
+
<span class='name'>data:</span>
|
197
221
|
|
198
222
|
|
199
|
-
<span class='type'>(<tt>String</tt>)</span>
|
223
|
+
<span class='type'>(<tt>Hash/String</tt>)</span>
|
200
224
|
|
201
225
|
|
202
226
|
|
203
227
|
—
|
204
228
|
<div class='inline'>
|
205
|
-
<p>
|
229
|
+
<p>to send</p>
|
206
230
|
</div>
|
207
231
|
|
208
232
|
</li>
|
209
233
|
|
210
234
|
<li>
|
211
235
|
|
212
|
-
<span class='name'>
|
236
|
+
<span class='name'>method:</span>
|
213
237
|
|
214
238
|
|
215
|
-
<span class='type'>(<tt>
|
239
|
+
<span class='type'>(<tt>String</tt>)</span>
|
216
240
|
|
217
241
|
|
218
242
|
|
219
243
|
—
|
220
244
|
<div class='inline'>
|
221
|
-
<p>
|
245
|
+
<p>choose from "get"/"post"/"delete"/"put", if nil default is "post"</p>
|
222
246
|
</div>
|
223
247
|
|
224
248
|
</li>
|
225
249
|
|
226
250
|
<li>
|
227
251
|
|
228
|
-
<span class='name'>
|
252
|
+
<span class='name'>headers:</span>
|
229
253
|
|
230
254
|
|
231
|
-
<span class='type'>(<tt>
|
255
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
232
256
|
|
233
257
|
|
234
258
|
|
235
259
|
—
|
236
260
|
<div class='inline'>
|
237
|
-
<p>if nil default is "application/json"</p>
|
261
|
+
<p>if nil default is => "application/json"</p>
|
238
262
|
</div>
|
239
263
|
|
240
264
|
</li>
|
@@ -283,30 +307,6 @@ response.status</p>
|
|
283
307
|
<pre class="lines">
|
284
308
|
|
285
309
|
|
286
|
-
22
|
287
|
-
23
|
288
|
-
24
|
289
|
-
25
|
290
|
-
26
|
291
|
-
27
|
292
|
-
28
|
293
|
-
29
|
294
|
-
30
|
295
|
-
31
|
296
|
-
32
|
297
|
-
33
|
298
|
-
34
|
299
|
-
35
|
300
|
-
36
|
301
|
-
37
|
302
|
-
38
|
303
|
-
39
|
304
|
-
40
|
305
|
-
41
|
306
|
-
42
|
307
|
-
43
|
308
|
-
44
|
309
|
-
45
|
310
310
|
46
|
311
311
|
47
|
312
312
|
48
|
@@ -322,47 +322,137 @@ response.status</p>
|
|
322
322
|
58
|
323
323
|
59
|
324
324
|
60
|
325
|
-
61
|
325
|
+
61
|
326
|
+
62
|
327
|
+
63
|
328
|
+
64
|
329
|
+
65
|
330
|
+
66
|
331
|
+
67
|
332
|
+
68
|
333
|
+
69
|
334
|
+
70
|
335
|
+
71
|
336
|
+
72
|
337
|
+
73
|
338
|
+
74
|
339
|
+
75
|
340
|
+
76
|
341
|
+
77
|
342
|
+
78
|
343
|
+
79
|
344
|
+
80
|
345
|
+
81
|
346
|
+
82
|
347
|
+
83
|
348
|
+
84
|
349
|
+
85
|
350
|
+
86
|
351
|
+
87
|
352
|
+
88
|
353
|
+
89
|
354
|
+
90
|
355
|
+
91
|
356
|
+
92
|
357
|
+
93
|
358
|
+
94
|
359
|
+
95
|
360
|
+
96
|
361
|
+
97
|
362
|
+
98
|
363
|
+
99
|
364
|
+
100
|
365
|
+
101
|
366
|
+
102
|
367
|
+
103
|
368
|
+
104
|
369
|
+
105
|
370
|
+
106
|
371
|
+
107
|
372
|
+
108
|
373
|
+
109
|
374
|
+
110
|
375
|
+
111
|
376
|
+
112
|
377
|
+
113
|
378
|
+
114
|
379
|
+
115
|
380
|
+
116
|
381
|
+
117
|
382
|
+
118</pre>
|
326
383
|
</td>
|
327
384
|
<td>
|
328
|
-
<pre class="code"><span class="info file"># File 'lib/ez_http.rb', line
|
385
|
+
<pre class="code"><span class="info file"># File 'lib/ez_http.rb', line 46</span>
|
329
386
|
|
330
|
-
<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
|
331
|
-
<span class='comment'># Parse url
|
332
|
-
</span> <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>
|
333
|
-
<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>
|
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='comma'>,</span> <span class='id identifier rubyid_method'>method</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><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='op'>=</span><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='rbrace'>}</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>
|
334
388
|
|
335
|
-
<span class='
|
336
|
-
|
389
|
+
<span class='comment'># Parse url
|
390
|
+
</span> <span class='kw'>begin</span>
|
391
|
+
<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
|
+
<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
|
+
<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
|
+
<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
|
+
<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>
|
337
398
|
<span class='kw'>end</span>
|
338
399
|
|
339
|
-
<span class='comment'># Create request obj
|
340
|
-
</span> <span class='id identifier rubyid_request'>request</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
341
400
|
|
342
|
-
<span class='
|
343
|
-
|
344
|
-
<span class='
|
345
|
-
|
346
|
-
|
347
|
-
|
401
|
+
<span class='comment'># Create request
|
402
|
+
</span> <span class='kw'>begin</span>
|
403
|
+
<span class='id identifier rubyid_method'>method</span> <span class='op'>=</span> <span class='id identifier rubyid_method'>method</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>
|
404
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_method'>method</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span>
|
405
|
+
<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
|
+
<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
|
+
<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>
|
408
|
+
<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'>Get</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>
|
409
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>put</span><span class='tstring_end'>"</span></span>
|
410
|
+
<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'>Put</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>
|
411
|
+
<span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>delete</span><span class='tstring_end'>"</span></span>
|
412
|
+
<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'>Delete</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>
|
413
|
+
<span class='kw'>else</span>
|
414
|
+
<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
|
+
<span class='kw'>end</span>
|
416
|
+
|
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
|
+
|
420
|
+
<span class='comment'># Set default content-type
|
421
|
+
</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'>application/json</span><span class='tstring_end'>"</span></span>
|
422
|
+
|
423
|
+
<span class='comment'># Set headers
|
424
|
+
</span> <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_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'>String</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
425
|
+
<span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_headers'>headers</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>
|
426
|
+
<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_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='op'>|</span>
|
427
|
+
<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_downcase'>downcase</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
|
428
|
+
<span class='kw'>end</span>
|
429
|
+
<span class='kw'>end</span>
|
348
430
|
<span class='kw'>else</span>
|
349
|
-
<span class='id identifier
|
431
|
+
<span class='id identifier rubyid_content_type'>content_type</span> <span class='op'>=</span> <span class='id identifier rubyid_headers'>headers</span>
|
432
|
+
<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>
|
433
|
+
<span class='kw'>end</span>
|
434
|
+
|
435
|
+
<span class='kw'>rescue</span>
|
436
|
+
<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>
|
350
437
|
<span class='kw'>end</span>
|
351
438
|
|
352
|
-
<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>
|
353
|
-
<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='op'>||</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>application/json</span><span class='tstring_end'>"</span></span>
|
354
439
|
|
355
440
|
<span class='comment'># Add cert if any
|
356
|
-
</span> <span class='kw'>
|
357
|
-
<span class='
|
358
|
-
|
359
|
-
<span class='
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
441
|
+
</span> <span class='kw'>begin</span>
|
442
|
+
<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>
|
443
|
+
<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>
|
444
|
+
<span class='kw'>else</span>
|
445
|
+
<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>
|
446
|
+
<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>
|
447
|
+
<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>
|
448
|
+
<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>
|
449
|
+
<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>
|
450
|
+
<span class='kw'>end</span>
|
451
|
+
<span class='kw'>rescue</span>
|
452
|
+
<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>
|
364
453
|
<span class='kw'>end</span>
|
365
454
|
|
455
|
+
|
366
456
|
<span class='comment'># Send request and return response
|
367
457
|
</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>
|
368
458
|
|
@@ -377,7 +467,7 @@ response.status</p>
|
|
377
467
|
</div>
|
378
468
|
|
379
469
|
<div id="footer">
|
380
|
-
Generated on
|
470
|
+
Generated on Wed Apr 11 00:18:56 2012 by
|
381
471
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
382
472
|
0.7.5 (ruby-1.9.3).
|
383
473
|
</div>
|
data/doc/_index.html
CHANGED
data/doc/file.README.html
CHANGED
@@ -56,30 +56,67 @@
|
|
56
56
|
|
57
57
|
<div id="content"><div id='filecontents'><h1>EZHttp</h1>
|
58
58
|
|
59
|
-
<p>A
|
59
|
+
<p>A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.</p>
|
60
60
|
|
61
61
|
<h2>How to use it</h2>
|
62
62
|
|
63
|
-
<
|
64
|
-
|
63
|
+
<p>send a post request to specified url with the json as data</p>
|
64
|
+
|
65
|
+
<pre class="code ruby"><code><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>
|
66
|
+
<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>
|
67
|
+
</code></pre>
|
68
|
+
|
69
|
+
<p>send a put request to specified url with encoded query string params as data</p>
|
70
|
+
|
71
|
+
<pre class="code ruby"><code><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>
|
72
|
+
<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>
|
73
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>put</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
74
|
+
<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>
|
75
|
+
</code></pre>
|
76
|
+
|
77
|
+
<p>specify extra headers</p>
|
78
|
+
|
79
|
+
<pre class="code ruby"><code><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>
|
80
|
+
<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>
|
81
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
82
|
+
<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>
|
83
|
+
</code></pre>
|
84
|
+
|
85
|
+
<p>use certificate</p>
|
86
|
+
|
87
|
+
<pre class="code ruby"><code><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>
|
88
|
+
<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>
|
89
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
90
|
+
<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>
|
91
|
+
<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>
|
92
|
+
</code></pre>
|
93
|
+
|
94
|
+
<p>display raw response</p>
|
95
|
+
|
96
|
+
<pre class="code ruby"><code><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>
|
65
97
|
</code></pre>
|
66
98
|
|
67
99
|
<h2>Installation</h2>
|
68
100
|
|
69
|
-
<p>Add the following line to
|
70
|
-
|
71
|
-
|
101
|
+
<p>Add the following line to rails "Gemfile" </p>
|
102
|
+
|
103
|
+
<pre class="code ruby"><code><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>ez_http</span><span class='tstring_end'>"</span></span>
|
104
|
+
</code></pre>
|
105
|
+
|
106
|
+
<p>then execute </p>
|
107
|
+
|
108
|
+
<pre class="code ruby"><code>$ bundle install
|
109
|
+
</code></pre>
|
72
110
|
|
73
|
-
<p>See
|
74
|
-
RubyGem: <a href="http://rubygems.org/gems/ez_htt" title="EZHttp RubyGem Page">http://rubygems.org/gems/ez_http</a></p>
|
111
|
+
<p>See <a href="http://rubygems.org/gems/ez_http" title="EZHttp RubyGem Page">http://rubygems.org/gems/ez_http</a> for more details </p>
|
75
112
|
|
76
|
-
<h2>
|
113
|
+
<h2>Authors</h2>
|
77
114
|
|
78
115
|
<p>Tianyu Huang</p>
|
79
116
|
</div></div>
|
80
117
|
|
81
118
|
<div id="footer">
|
82
|
-
Generated on
|
119
|
+
Generated on Wed Apr 11 00:18:56 2012 by
|
83
120
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
84
121
|
0.7.5 (ruby-1.9.3).
|
85
122
|
</div>
|
data/doc/index.html
CHANGED
@@ -56,30 +56,67 @@
|
|
56
56
|
|
57
57
|
<div id="content"><div id='filecontents'><h1>EZHttp</h1>
|
58
58
|
|
59
|
-
<p>A
|
59
|
+
<p>A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.</p>
|
60
60
|
|
61
61
|
<h2>How to use it</h2>
|
62
62
|
|
63
|
-
<
|
64
|
-
|
63
|
+
<p>send a post request to specified url with the json as data</p>
|
64
|
+
|
65
|
+
<pre class="code ruby"><code><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>
|
66
|
+
<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>
|
67
|
+
</code></pre>
|
68
|
+
|
69
|
+
<p>send a put request to specified url with encoded query string params as data</p>
|
70
|
+
|
71
|
+
<pre class="code ruby"><code><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>
|
72
|
+
<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>
|
73
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>put</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
74
|
+
<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>
|
75
|
+
</code></pre>
|
76
|
+
|
77
|
+
<p>specify extra headers</p>
|
78
|
+
|
79
|
+
<pre class="code ruby"><code><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>
|
80
|
+
<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>
|
81
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
82
|
+
<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>
|
83
|
+
</code></pre>
|
84
|
+
|
85
|
+
<p>use certificate</p>
|
86
|
+
|
87
|
+
<pre class="code ruby"><code><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>
|
88
|
+
<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>
|
89
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>post</span><span class='tstring_end'>"</span></span><span class='comma'>,</span>
|
90
|
+
<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>
|
91
|
+
<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>
|
92
|
+
</code></pre>
|
93
|
+
|
94
|
+
<p>display raw response</p>
|
95
|
+
|
96
|
+
<pre class="code ruby"><code><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>
|
65
97
|
</code></pre>
|
66
98
|
|
67
99
|
<h2>Installation</h2>
|
68
100
|
|
69
|
-
<p>Add the following line to
|
70
|
-
|
71
|
-
|
101
|
+
<p>Add the following line to rails "Gemfile" </p>
|
102
|
+
|
103
|
+
<pre class="code ruby"><code><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>ez_http</span><span class='tstring_end'>"</span></span>
|
104
|
+
</code></pre>
|
105
|
+
|
106
|
+
<p>then execute </p>
|
107
|
+
|
108
|
+
<pre class="code ruby"><code>$ bundle install
|
109
|
+
</code></pre>
|
72
110
|
|
73
|
-
<p>See
|
74
|
-
RubyGem: <a href="http://rubygems.org/gems/ez_htt" title="EZHttp RubyGem Page">http://rubygems.org/gems/ez_http</a></p>
|
111
|
+
<p>See <a href="http://rubygems.org/gems/ez_http" title="EZHttp RubyGem Page">http://rubygems.org/gems/ez_http</a> for more details </p>
|
75
112
|
|
76
|
-
<h2>
|
113
|
+
<h2>Authors</h2>
|
77
114
|
|
78
115
|
<p>Tianyu Huang</p>
|
79
116
|
</div></div>
|
80
117
|
|
81
118
|
<div id="footer">
|
82
|
-
Generated on
|
119
|
+
Generated on Wed Apr 11 00:18:56 2012 by
|
83
120
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
84
121
|
0.7.5 (ruby-1.9.3).
|
85
122
|
</div>
|
data/ez_http.gemspec
CHANGED
@@ -2,11 +2,11 @@ Gem::Specification.new do |s|
|
|
2
2
|
|
3
3
|
# Basic info
|
4
4
|
s.name = "ez_http"
|
5
|
-
s.version = "1.0.
|
5
|
+
s.version = "1.0.3"
|
6
6
|
s.platform = Gem::Platform::RUBY
|
7
|
-
s.date = "2012-04-
|
7
|
+
s.date = "2012-04-11"
|
8
8
|
s.summary = "Make http/https request easier"
|
9
|
-
s.description = "A
|
9
|
+
s.description = "A wrapper for ruby net/http, supports http/https, RESTful methods, certificate."
|
10
10
|
s.authors = ["Tianyu Huang"]
|
11
11
|
s.email = ["tianhsky@yahoo.com"]
|
12
12
|
s.homepage = "http://rubygems.org/gems/ez_http"
|
data/lib/ez_http.rb
CHANGED
@@ -2,39 +2,48 @@ require "net/http"
|
|
2
2
|
require "uri"
|
3
3
|
require "openssl"
|
4
4
|
|
5
|
-
# A
|
5
|
+
# A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.
|
6
6
|
# How to use:
|
7
|
-
#
|
8
|
-
#
|
9
|
-
# response = EZHttp.Send("https://www.example.com:83/api",
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
7
|
+
#
|
8
|
+
# # send a post request to specified url with the json as data
|
9
|
+
# response = EZHttp.Send("https://www.example.com:83/api",
|
10
|
+
# {"key1"=>"value1"})
|
11
|
+
#
|
12
|
+
# # send a put request to specified url with encoded query string params as data
|
13
|
+
# response = EZHttp.Send("https://www.example.com:83/api",
|
14
|
+
# "key1=I%27ll+do&key2=He%27+do",
|
15
|
+
# "put",
|
16
|
+
# "application/x-www-form-urlencoded")
|
17
|
+
#
|
18
|
+
# # specify extra headers
|
19
|
+
# response = EZHttp.Send("https://www.example.com:83/api",
|
20
|
+
# {"key1"=>"value1"},
|
21
|
+
# "post",
|
22
|
+
# {"content-type" => "application/json", "authentication" => "xxxx"})
|
23
|
+
#
|
24
|
+
# # use certificate
|
25
|
+
# response = EZHttp.Send("https://www.example.com:83/api",
|
26
|
+
# {"key1"=>"value1"},
|
27
|
+
# "post",
|
28
|
+
# "application/json",
|
29
|
+
# "/path_to_cert.pem")
|
30
|
+
#
|
31
|
+
# # display raw response
|
13
32
|
# puts response.body
|
14
33
|
#
|
15
34
|
# @author Tianyu Huang [tianhsky@yahoo.com]
|
16
35
|
#
|
17
36
|
module EZHttp
|
18
37
|
|
19
|
-
# Send request to specified url and
|
38
|
+
# Send http request to specified url and return responses
|
20
39
|
# @param [String] url: to send request to
|
21
|
-
# @param [Hash] data: to send
|
22
|
-
# @param [String] method:
|
23
|
-
# @param [
|
40
|
+
# @param [Hash/String] data: to send
|
41
|
+
# @param [String] method: choose from "get"/"post"/"delete"/"put", if nil default is "post"
|
42
|
+
# @param [Hash] headers: if nil default is {"content-type" => "application/json"}
|
24
43
|
# @param [String] cert_path: to the certificate file, set nil if none
|
25
44
|
# @return [Net::HTTPResponse] response from remote server, example to access its fields: response.body, response.status
|
26
45
|
#
|
27
|
-
def self.Send(url, data, method="post",
|
28
|
-
|
29
|
-
# Hack to make it compatible with version <= 1.0.1
|
30
|
-
unless (method.class.to_s == "String")
|
31
|
-
if (method.respond_to?("merge"))
|
32
|
-
temp_data = method
|
33
|
-
method = data
|
34
|
-
data = temp_data
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
46
|
+
def self.Send(url, data, method="post", headers={"content-type" => "application/json"}, cert_path=nil)
|
38
47
|
|
39
48
|
# Parse url
|
40
49
|
begin
|
@@ -52,20 +61,36 @@ module EZHttp
|
|
52
61
|
begin
|
53
62
|
method = method || "post"
|
54
63
|
case method.downcase
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
64
|
+
when "post"
|
65
|
+
request = Net::HTTP::Post.new(uri.request_uri)
|
66
|
+
when "get"
|
67
|
+
request = Net::HTTP::Get.new(uri.request_uri)
|
68
|
+
when "put"
|
69
|
+
request = Net::HTTP::Put.new(uri.request_uri)
|
70
|
+
when "delete"
|
71
|
+
request = Net::HTTP::Delete.new(uri.request_uri)
|
72
|
+
else
|
73
|
+
request = Net::HTTP::Post.new(uri.request_uri)
|
65
74
|
end
|
66
75
|
|
76
|
+
# Set form data
|
67
77
|
request.set_form_data(data)
|
68
|
-
|
78
|
+
|
79
|
+
# Set default content-type
|
80
|
+
request["content-type"] = "application/json"
|
81
|
+
|
82
|
+
# Set headers
|
83
|
+
unless (headers.class.to_s == "String")
|
84
|
+
if (headers.respond_to?("merge"))
|
85
|
+
headers.each do |key, value|
|
86
|
+
request[key.downcase] = value
|
87
|
+
end
|
88
|
+
end
|
89
|
+
else
|
90
|
+
content_type = headers
|
91
|
+
request["content-type"] = content_type
|
92
|
+
end
|
93
|
+
|
69
94
|
rescue
|
70
95
|
throw "Error in creating request"
|
71
96
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ez_http
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,10 +9,9 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-11 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
|
-
description: A
|
15
|
-
post/get requests, one method call does everything.
|
14
|
+
description: A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.
|
16
15
|
email:
|
17
16
|
- tianhsky@yahoo.com
|
18
17
|
executables: []
|
@@ -22,6 +21,7 @@ extra_rdoc_files:
|
|
22
21
|
- doc/index.html
|
23
22
|
files:
|
24
23
|
- .gitignore
|
24
|
+
- LICENSE
|
25
25
|
- README.md
|
26
26
|
- doc/EZHttp.html
|
27
27
|
- doc/_index.html
|