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 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 helper wrapper around net/http, supports http/https(with/without certificate), post/get requests, one method call does everything.
3
+ A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.
4
4
 
5
5
  ## How to use it
6
6
 
7
- # default it will send a post request to specified url with the hash object as json
8
- response = EZHttp.Send("https://www.example.com:83/api", {"key1"=>"value1"})
9
- # or
10
- response = EZHttp.Send("https://www.example.com:83/api", {"key1"=>"value1"}, "post", "application/json")
11
- # or with certificate
12
- response = EZHttp.Send("https://www.example.com:83/api", {"key1"=>"value1"}, "post", "application/json", "/path_to_cert.pem")
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 your "Gemfile"
40
+ Add the following line to rails "Gemfile"
41
+
19
42
  gem "ez_http"
20
- then execute bundle install
43
+
44
+ then execute
21
45
 
22
- See here for more details:
23
- [http://rubygems.org/gems/ez_http](http://rubygems.org/gems/ez_htt "EZHttp RubyGem Page")
46
+ $ bundle install
24
47
 
25
- ## Author
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 helper wrapper around net/http, supports http/https(with/without
84
- certificate), post/get requests, one method call does everything.</p>
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
- <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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
88
- <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>
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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
90
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
94
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1=I%27ll+do&amp;key2=He%27+do</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
95
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>put</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
96
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/x-www-form-urlencoded</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
100
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
101
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
102
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>authentication</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xxxx</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
106
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
107
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
108
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
109
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/path_to_cert.pem</span><span class='tstring_end'>&quot;</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, method, data, content_type, cert_path) </a>
154
+ <a href="#Send-class_method" title="Send (class method)">+ (Net::HTTPResponse) <strong>Send</strong>(url, data, method = &quot;post&quot;, headers = {&quot;content-type&quot; =&gt; &quot;application/json&quot;}, 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 will return responses.</p>
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, method, data, content_type, cert_path)
186
+ + (<tt>Net::HTTPResponse</tt>) <strong>Send</strong>(url, data, method = &quot;post&quot;, headers = {&quot;content-type&quot; =&gt; &quot;application/json&quot;}, 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 will return responses</p>
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'>method:</span>
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
  &mdash;
204
228
  <div class='inline'>
205
- <p>is "get" or "post", if nil default is "post"</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'>data:</span>
236
+ <span class='name'>method:</span>
213
237
 
214
238
 
215
- <span class='type'>(<tt>Hash</tt>)</span>
239
+ <span class='type'>(<tt>String</tt>)</span>
216
240
 
217
241
 
218
242
 
219
243
  &mdash;
220
244
  <div class='inline'>
221
- <p>to send</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'>content_type:</span>
252
+ <span class='name'>headers:</span>
229
253
 
230
254
 
231
- <span class='type'>(<tt>String</tt>)</span>
255
+ <span class='type'>(<tt>Hash</tt>)</span>
232
256
 
233
257
 
234
258
 
235
259
  &mdash;
236
260
  <div class='inline'>
237
- <p>if nil default is "application/json"</p>
261
+ <p>if nil default is =&gt; "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</pre>
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 22</span>
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 rubyid_method'>method</span><span class='comma'>,</span> <span class='id identifier rubyid_data'>data</span><span class='comma'>,</span> <span class='id identifier rubyid_content_type'>content_type</span><span class='comma'>,</span> <span class='id identifier rubyid_cert_path'>cert_path</span><span class='rparen'>)</span>
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'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</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='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>
336
- <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>
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'>&quot;</span><span class='tstring_content'>Error in url</span><span class='tstring_end'>&quot;</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='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'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span>
343
- <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>
344
- <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span>
345
- <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>
346
- <span class='kw'>when</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>get</span><span class='tstring_end'>&quot;</span></span>
347
- <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>
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'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>get</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>put</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>delete</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>String</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>merge</span><span class='tstring_end'>&quot;</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 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>
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'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>Error in creating request</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>Content-Type</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span>
354
439
 
355
440
  <span class='comment'># Add cert if any
356
- </span> <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>
357
- <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>
358
- <span class='kw'>else</span>
359
- <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>
360
- <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>
361
- <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>
362
- <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>
363
- <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>
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'>&quot;</span><span class='tstring_content'>Error in creating certificate</span><span class='tstring_end'>&quot;</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 Sat Mar 31 14:47:49 2012 by
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
@@ -97,7 +97,7 @@
97
97
  </div>
98
98
 
99
99
  <div id="footer">
100
- Generated on Sat Mar 31 14:47:49 2012 by
100
+ Generated on Wed Apr 11 00:18:56 2012 by
101
101
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
102
102
  0.7.5 (ruby-1.9.3).
103
103
  </div>
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 helper wrapper around net/http, supports http/https(with/without certificate), post/get requests, one method call does everything.</p>
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
- <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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
64
- <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>
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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
66
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
72
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1=I%27ll+do&amp;key2=He%27+do</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
73
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>put</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
74
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/x-www-form-urlencoded</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
80
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
81
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
82
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>authentication</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xxxx</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
88
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
89
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
90
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
91
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/path_to_cert.pem</span><span class='tstring_end'>&quot;</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 your &quot;Gemfile&quot;
70
- gem &quot;ez_http&quot;
71
- then execute bundle install</p>
101
+ <p>Add the following line to rails &quot;Gemfile&quot; </p>
102
+
103
+ <pre class="code ruby"><code><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ez_http</span><span class='tstring_end'>&quot;</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 here for more details:
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>Author</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 Sat Mar 31 14:47:49 2012 by
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 helper wrapper around net/http, supports http/https(with/without certificate), post/get requests, one method call does everything.</p>
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
- <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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='kw'>nil</span><span class='rparen'>)</span>
64
- <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>
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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
66
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
72
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1=I%27ll+do&amp;key2=He%27+do</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
73
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>put</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
74
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/x-www-form-urlencoded</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
80
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
81
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
82
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content-type</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>authentication</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>xxxx</span><span class='tstring_end'>&quot;</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'>&quot;</span><span class='tstring_content'>https://www.example.com:83/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
88
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>key1</span><span class='tstring_end'>&quot;</span></span><span class='op'>=&gt;</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>value1</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
89
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>post</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
90
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>application/json</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
91
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>/path_to_cert.pem</span><span class='tstring_end'>&quot;</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 your &quot;Gemfile&quot;
70
- gem &quot;ez_http&quot;
71
- then execute bundle install</p>
101
+ <p>Add the following line to rails &quot;Gemfile&quot; </p>
102
+
103
+ <pre class="code ruby"><code><span class='id identifier rubyid_gem'>gem</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>ez_http</span><span class='tstring_end'>&quot;</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 here for more details:
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>Author</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 Sat Mar 31 14:47:49 2012 by
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>
@@ -96,7 +96,7 @@
96
96
  </div>
97
97
 
98
98
  <div id="footer">
99
- Generated on Sat Mar 31 14:47:49 2012 by
99
+ Generated on Wed Apr 11 00:18:56 2012 by
100
100
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
101
101
  0.7.5 (ruby-1.9.3).
102
102
  </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.2"
5
+ s.version = "1.0.3"
6
6
  s.platform = Gem::Platform::RUBY
7
- s.date = "2012-04-04"
7
+ s.date = "2012-04-11"
8
8
  s.summary = "Make http/https request easier"
9
- s.description = "A helper wrapper around net/http, supports http/https(with/without certificate), post/get requests, one method call does everything."
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 helper wrapper around net/http, supports http/https(with/without certificate), post/get requests, one method call does everything.
5
+ # A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.
6
6
  # How to use:
7
- # response = EZHttp.Send("https://www.example.com:83/api", {"key1"=>"value1"})
8
- # or
9
- # response = EZHttp.Send("https://www.example.com:83/api", {"key1"=>"value1"}, "post", "application/json")
10
- # or
11
- # response = EZHttp.Send("https://www.example.com:83/api", {"key1"=>"value1"}, "post", "application/json", "/path_to_cert.pem")
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 will return responses
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: can be "get"/"post"/"delete"/"put", if nil default is "post"
23
- # @param [String] content_type: if nil default is "application/json"
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", content_type="application/json", cert_path=nil)
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
- when "post"
56
- request = Net::HTTP::Post.new(uri.request_uri)
57
- when "get"
58
- request = Net::HTTP::Get.new(uri.request_uri)
59
- when "put"
60
- request = Net::HTTP::Put.new(uri.request_uri)
61
- when "delete"
62
- request = Net::HTTP::Delete.new(uri.request_uri)
63
- else
64
- request = Net::HTTP::Post.new(uri.request_uri)
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
- request["Content-Type"] = content_type || "application/json"
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.2
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-04 00:00:00.000000000 Z
12
+ date: 2012-04-11 00:00:00.000000000 Z
13
13
  dependencies: []
14
- description: A helper wrapper around net/http, supports http/https(with/without certificate),
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