ez_http 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
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