ez_http 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -97,7 +97,7 @@
97
97
  </div>
98
98
 
99
99
  <div id="footer">
100
- Generated on Wed Apr 11 00:18:56 2012 by
100
+ Generated on Mon Apr 16 02:15:47 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>
@@ -56,42 +56,126 @@
56
56
 
57
57
  <div id="content"><div id='filecontents'><h1>EZHttp</h1>
58
58
 
59
- <p>A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.</p>
59
+ <p>A wrapper for ruby net/http, supports http/https, RESTful methods, headers, certificate and file uploads.<br>
60
+ It supports both command line and ruby code. </p>
60
61
 
61
62
  <h2>How to use it</h2>
62
63
 
63
- <p>send a post request to specified url with the json as data</p>
64
+ <h3>Command Line</h3>
64
65
 
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>
66
+ <p>Send with query string</p>
67
+
68
+ <pre class="code ruby"><code>ezhttp \
69
+ --url &quot;https://api.twitter.com/1/followers/ids.json&quot; \
70
+ --method &quot;get&quot; \
71
+ --data &quot;cursor=-1&amp;screen_name=twitterapi&quot;
72
+ </code></pre>
73
+
74
+ <p>Send with query string</p>
75
+
76
+ <pre class="code ruby"><code>ezhttp \
77
+ --url &quot;https://api.twitter.com/1/followers/ids.json&amp;cursor=-1&amp;screen_name=twitterapi&quot; \
78
+ --method &quot;get&quot;
79
+ </code></pre>
80
+
81
+ <p>Send with json</p>
82
+
83
+ <pre class="code ruby"><code>ezhttp \
84
+ --url 'http://127.0.0.1:3000/file/upload_file' \
85
+ --data '{&quot;name&quot;:{&quot;fn&quot;:&quot;xxx&quot;,&quot;ln&quot;:&quot;xxx&quot;}}' \
86
+ --method 'post' \
87
+ --type 'application/json'
88
+ </code></pre>
89
+
90
+ <p>Send with header</p>
91
+
92
+ <pre class="code ruby"><code>ezhttp \
93
+ --url 'https://api.twitter.com/oauth/request_token' \
94
+ --method 'post' \
95
+ --header 'Authorization: OAuth oauth_nonce=&quot;K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw&quot;, oauth_callback=&quot;http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback&quot;, oauth_signature_method=&quot;HMAC-SHA1&quot;, oauth_timestamp=&quot;1300228849&quot;, oauth_consumer_key=&quot;OqEqJeafRSF11jBMStrZz&quot;, oauth_signature=&quot;Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D&quot;, oauth_version=&quot;1.0&quot;'
96
+ </code></pre>
97
+
98
+ <p>Upload file</p>
99
+
100
+ <pre class="code ruby"><code>ezhttp \
101
+ --url 'http://127.0.0.1:3000/file/upload_file' \
102
+ --files 'path_to_file.png'
103
+ </code></pre>
104
+
105
+ <p>Upload multiple files with header</p>
106
+
107
+ <pre class="code ruby"><code>ezhttp \
108
+ --url 'http://127.0.0.1:3000/file/upload_file' \
109
+ --files 'path_to_file1.zip','path_to_file2.jpg' \
110
+ --header 'authorization:Basic Zvsdwegbdgegsdv0xvsd='
111
+ </code></pre>
112
+
113
+ <h3>Ruby</h3>
114
+
115
+ <p>Send with encoded query string as data</p>
116
+
117
+ <pre class="code ruby"><code><span class='comment'># Post request
118
+ </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'>Post</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>
119
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>user_id=12345&amp;token=sdfwD12g%7Ecc</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
120
+
121
+ <span class='comment'># Get request
122
+ </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'>Get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://www.example.com/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
123
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>user_id=12345&amp;token=sdfwD12g%7Ecc</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
124
+
125
+ <span class='comment'># OR
126
+ </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'>Get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://www.example.com/api?user_id=12345&amp;token=sdfwD12g%7Ecc</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
67
127
  </code></pre>
68
128
 
69
- <p>send a put request to specified url with encoded query string params as data</p>
129
+ <p>Send with hash as data</p>
130
+
131
+ <pre class="code ruby"><code><span class='comment'># Post request
132
+ </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'>Post</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>
133
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name1</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'>value</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'>name2</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'>value2</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
70
134
 
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>
135
+ <span class='comment'># Put request
136
+ </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'>Put</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>
137
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name1</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'>value</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'>name2</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'>value2</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
75
138
  </code></pre>
76
139
 
77
- <p>specify extra headers</p>
140
+ <p>Send with extra headers</p>
78
141
 
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>
142
+ <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'>Post</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>
143
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>user_id=12345&amp;token=sdfwD12g%7Ecc</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
144
+ <span class='kw'>nil</span><span class='comma'>,</span>
145
+ <span class='lbracket'>[</span>
146
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>authentication:oAuth username=xxx&amp;password=xxx</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
147
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>other_header:other_values</span><span class='tstring_end'>&quot;</span></span>
148
+ <span class='rbracket'>]</span><span class='rparen'>)</span>
83
149
  </code></pre>
84
150
 
85
- <p>use certificate</p>
151
+ <p>Send with pem certificate</p>
86
152
 
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>
153
+ <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'>Delete</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>
154
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>user_id</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'>12345</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
90
155
  <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>
156
+ <span class='kw'>nil</span><span class='comma'>,</span>
91
157
  <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
158
  </code></pre>
93
159
 
94
- <p>display raw response</p>
160
+ <p>Upload file(s)</p>
161
+
162
+ <pre class="code ruby"><code><span class='comment'>#
163
+ </span><span class='id identifier rubyid_files'>files</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
164
+ <span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>path_to_file.extension</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'>rb</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
165
+ <span class='id identifier rubyid_files'>files</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_basename'>basename</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='rbrace'>}</span><span class='rparen'>)</span>
166
+ <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
167
+
168
+ <span class='comment'># simply upload file
169
+ </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'>Upload</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>
170
+ <span class='id identifier rubyid_files'>files</span><span class='rparen'>)</span>
171
+
172
+ <span class='comment'># upload file with headers
173
+ </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'>Upload</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>
174
+ <span class='id identifier rubyid_files'>files</span><span class='comma'>,</span>
175
+ <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>authorization:Basic Zvsdwegbdgegsdv0xvsd=</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
176
+ </code></pre>
177
+
178
+ <p>Display response</p>
95
179
 
96
180
  <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>
97
181
  </code></pre>
@@ -116,7 +200,7 @@
116
200
  </div></div>
117
201
 
118
202
  <div id="footer">
119
- Generated on Wed Apr 11 00:18:56 2012 by
203
+ Generated on Mon Apr 16 02:15:47 2012 by
120
204
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
205
  0.7.5 (ruby-1.9.3).
122
206
  </div>
@@ -56,42 +56,126 @@
56
56
 
57
57
  <div id="content"><div id='filecontents'><h1>EZHttp</h1>
58
58
 
59
- <p>A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.</p>
59
+ <p>A wrapper for ruby net/http, supports http/https, RESTful methods, headers, certificate and file uploads.<br>
60
+ It supports both command line and ruby code. </p>
60
61
 
61
62
  <h2>How to use it</h2>
62
63
 
63
- <p>send a post request to specified url with the json as data</p>
64
+ <h3>Command Line</h3>
64
65
 
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>
66
+ <p>Send with query string</p>
67
+
68
+ <pre class="code ruby"><code>ezhttp \
69
+ --url &quot;https://api.twitter.com/1/followers/ids.json&quot; \
70
+ --method &quot;get&quot; \
71
+ --data &quot;cursor=-1&amp;screen_name=twitterapi&quot;
72
+ </code></pre>
73
+
74
+ <p>Send with query string</p>
75
+
76
+ <pre class="code ruby"><code>ezhttp \
77
+ --url &quot;https://api.twitter.com/1/followers/ids.json&amp;cursor=-1&amp;screen_name=twitterapi&quot; \
78
+ --method &quot;get&quot;
79
+ </code></pre>
80
+
81
+ <p>Send with json</p>
82
+
83
+ <pre class="code ruby"><code>ezhttp \
84
+ --url 'http://127.0.0.1:3000/file/upload_file' \
85
+ --data '{&quot;name&quot;:{&quot;fn&quot;:&quot;xxx&quot;,&quot;ln&quot;:&quot;xxx&quot;}}' \
86
+ --method 'post' \
87
+ --type 'application/json'
88
+ </code></pre>
89
+
90
+ <p>Send with header</p>
91
+
92
+ <pre class="code ruby"><code>ezhttp \
93
+ --url 'https://api.twitter.com/oauth/request_token' \
94
+ --method 'post' \
95
+ --header 'Authorization: OAuth oauth_nonce=&quot;K7ny27JTpKVsTgdyLdDfmQQWVLERj2zAK5BslRsqyw&quot;, oauth_callback=&quot;http%3A%2F%2Fmyapp.com%3A3005%2Ftwitter%2Fprocess_callback&quot;, oauth_signature_method=&quot;HMAC-SHA1&quot;, oauth_timestamp=&quot;1300228849&quot;, oauth_consumer_key=&quot;OqEqJeafRSF11jBMStrZz&quot;, oauth_signature=&quot;Pc%2BMLdv028fxCErFyi8KXFM%2BddU%3D&quot;, oauth_version=&quot;1.0&quot;'
96
+ </code></pre>
97
+
98
+ <p>Upload file</p>
99
+
100
+ <pre class="code ruby"><code>ezhttp \
101
+ --url 'http://127.0.0.1:3000/file/upload_file' \
102
+ --files 'path_to_file.png'
103
+ </code></pre>
104
+
105
+ <p>Upload multiple files with header</p>
106
+
107
+ <pre class="code ruby"><code>ezhttp \
108
+ --url 'http://127.0.0.1:3000/file/upload_file' \
109
+ --files 'path_to_file1.zip','path_to_file2.jpg' \
110
+ --header 'authorization:Basic Zvsdwegbdgegsdv0xvsd='
111
+ </code></pre>
112
+
113
+ <h3>Ruby</h3>
114
+
115
+ <p>Send with encoded query string as data</p>
116
+
117
+ <pre class="code ruby"><code><span class='comment'># Post request
118
+ </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'>Post</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>
119
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>user_id=12345&amp;token=sdfwD12g%7Ecc</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
120
+
121
+ <span class='comment'># Get request
122
+ </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'>Get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://www.example.com/api</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
123
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>user_id=12345&amp;token=sdfwD12g%7Ecc</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
124
+
125
+ <span class='comment'># OR
126
+ </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'>Get</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>http://www.example.com/api?user_id=12345&amp;token=sdfwD12g%7Ecc</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
67
127
  </code></pre>
68
128
 
69
- <p>send a put request to specified url with encoded query string params as data</p>
129
+ <p>Send with hash as data</p>
130
+
131
+ <pre class="code ruby"><code><span class='comment'># Post request
132
+ </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'>Post</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>
133
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name1</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'>value</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'>name2</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'>value2</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
70
134
 
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>
135
+ <span class='comment'># Put request
136
+ </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'>Put</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>
137
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name1</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'>value</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'>name2</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'>value2</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='rparen'>)</span>
75
138
  </code></pre>
76
139
 
77
- <p>specify extra headers</p>
140
+ <p>Send with extra headers</p>
78
141
 
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>
142
+ <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'>Post</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>
143
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>user_id=12345&amp;token=sdfwD12g%7Ecc</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
144
+ <span class='kw'>nil</span><span class='comma'>,</span>
145
+ <span class='lbracket'>[</span>
146
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>authentication:oAuth username=xxx&amp;password=xxx</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span>
147
+ <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>other_header:other_values</span><span class='tstring_end'>&quot;</span></span>
148
+ <span class='rbracket'>]</span><span class='rparen'>)</span>
83
149
  </code></pre>
84
150
 
85
- <p>use certificate</p>
151
+ <p>Send with pem certificate</p>
86
152
 
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>
153
+ <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'>Delete</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>
154
+ <span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>user_id</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'>12345</span><span class='tstring_end'>&quot;</span></span><span class='rbrace'>}</span><span class='comma'>,</span>
90
155
  <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>
156
+ <span class='kw'>nil</span><span class='comma'>,</span>
91
157
  <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
158
  </code></pre>
93
159
 
94
- <p>display raw response</p>
160
+ <p>Upload file(s)</p>
161
+
162
+ <pre class="code ruby"><code><span class='comment'>#
163
+ </span><span class='id identifier rubyid_files'>files</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
164
+ <span class='id identifier rubyid_file'>file</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_open'>open</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>path_to_file.extension</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'>rb</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
165
+ <span class='id identifier rubyid_files'>files</span><span class='period'>.</span><span class='id identifier rubyid_push'>push</span><span class='lparen'>(</span><span class='lbrace'>{</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>name</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='const'>File</span><span class='period'>.</span><span class='id identifier rubyid_basename'>basename</span><span class='lparen'>(</span><span class='id identifier rubyid_file'>file</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>content</span><span class='tstring_end'>&quot;</span></span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_read'>read</span><span class='rbrace'>}</span><span class='rparen'>)</span>
166
+ <span class='id identifier rubyid_file'>file</span><span class='period'>.</span><span class='id identifier rubyid_close'>close</span>
167
+
168
+ <span class='comment'># simply upload file
169
+ </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'>Upload</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>
170
+ <span class='id identifier rubyid_files'>files</span><span class='rparen'>)</span>
171
+
172
+ <span class='comment'># upload file with headers
173
+ </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'>Upload</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>
174
+ <span class='id identifier rubyid_files'>files</span><span class='comma'>,</span>
175
+ <span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>authorization:Basic Zvsdwegbdgegsdv0xvsd=</span><span class='tstring_end'>&quot;</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
176
+ </code></pre>
177
+
178
+ <p>Display response</p>
95
179
 
96
180
  <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>
97
181
  </code></pre>
@@ -116,7 +200,7 @@
116
200
  </div></div>
117
201
 
118
202
  <div id="footer">
119
- Generated on Wed Apr 11 00:18:56 2012 by
203
+ Generated on Mon Apr 16 02:15:47 2012 by
120
204
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
121
205
  0.7.5 (ruby-1.9.3).
122
206
  </div>
@@ -40,6 +40,38 @@
40
40
  <ul id="full_list" class="methods">
41
41
 
42
42
 
43
+ <li class="r1 ">
44
+ <span class='object_link'><a href="EZHttp.html#Delete-class_method" title="EZHttp.Delete (method)">Delete</a></span>
45
+
46
+ <small>EZHttp</small>
47
+
48
+ </li>
49
+
50
+
51
+ <li class="r2 ">
52
+ <span class='object_link'><a href="EZHttp.html#Get-class_method" title="EZHttp.Get (method)">Get</a></span>
53
+
54
+ <small>EZHttp</small>
55
+
56
+ </li>
57
+
58
+
59
+ <li class="r1 ">
60
+ <span class='object_link'><a href="EZHttp.html#Post-class_method" title="EZHttp.Post (method)">Post</a></span>
61
+
62
+ <small>EZHttp</small>
63
+
64
+ </li>
65
+
66
+
67
+ <li class="r2 ">
68
+ <span class='object_link'><a href="EZHttp.html#Put-class_method" title="EZHttp.Put (method)">Put</a></span>
69
+
70
+ <small>EZHttp</small>
71
+
72
+ </li>
73
+
74
+
43
75
  <li class="r1 ">
44
76
  <span class='object_link'><a href="EZHttp.html#Send-class_method" title="EZHttp.Send (method)">Send</a></span>
45
77
 
@@ -48,6 +80,14 @@
48
80
  </li>
49
81
 
50
82
 
83
+ <li class="r2 ">
84
+ <span class='object_link'><a href="EZHttp.html#Upload-class_method" title="EZHttp.Upload (method)">Upload</a></span>
85
+
86
+ <small>EZHttp</small>
87
+
88
+ </li>
89
+
90
+
51
91
  </ul>
52
92
  </div>
53
93
  </body>
@@ -96,7 +96,7 @@
96
96
  </div>
97
97
 
98
98
  <div id="footer">
99
- Generated on Wed Apr 11 00:18:56 2012 by
99
+ Generated on Mon Apr 16 02:15:47 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>
@@ -1,21 +1,29 @@
1
+ lib = File.expand_path("../lib/", __FILE__)
2
+ $:.unshift lib unless $:.include?(lib)
3
+
4
+ require "ez_http/version"
5
+
1
6
  Gem::Specification.new do |s|
2
7
 
3
8
  # Basic info
4
9
  s.name = "ez_http"
5
- s.version = "1.0.3"
10
+ s.version = ::EZHttp::VERSION
6
11
  s.platform = Gem::Platform::RUBY
7
- s.date = "2012-04-11"
8
- s.summary = "Make http/https request easier"
9
- s.description = "A wrapper for ruby net/http, supports http/https, RESTful methods, certificate."
12
+ s.date = "2012-04-15"
13
+ s.summary = "Make http/https requests easier"
14
+ s.description = "A wrapper for ruby net/http, supports http/https, RESTful methods, headers, certificate and file uploads"
10
15
  s.authors = ["Tianyu Huang"]
11
16
  s.email = ["tianhsky@yahoo.com"]
12
17
  s.homepage = "http://rubygems.org/gems/ez_http"
13
18
 
14
19
  # Dependencies
15
- # s.required_rubygems_version = ">= 1.3.6"
20
+ #s.required_rubygems_version = ">= 1.8.22"
21
+ s.add_dependency "json", ">= 1.6.6"
16
22
 
17
23
  # Files
18
24
  s.files = `git ls-files`.split("\n")
25
+ s.require_paths = ["lib"]
26
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
19
27
  s.extra_rdoc_files = ["README.md", "doc/index.html"]
20
28
 
21
29
  end
@@ -1,119 +1,3 @@
1
- require "net/http"
2
- require "uri"
3
- require "openssl"
1
+ require 'ez_http/version'
2
+ require 'ez_http/core'
4
3
 
5
- # A wrapper for ruby net/http, supports http/https, RESTful methods, certificate.
6
- # How to use:
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
32
- # puts response.body
33
- #
34
- # @author Tianyu Huang [tianhsky@yahoo.com]
35
- #
36
- module EZHttp
37
-
38
- # Send http request to specified url and return responses
39
- # @param [String] url: to send request to
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"}
43
- # @param [String] cert_path: to the certificate file, set nil if none
44
- # @return [Net::HTTPResponse] response from remote server, example to access its fields: response.body, response.status
45
- #
46
- def self.Send(url, data, method="post", headers={"content-type" => "application/json"}, cert_path=nil)
47
-
48
- # Parse url
49
- begin
50
- uri = URI.parse(url)
51
- http = Net::HTTP.new(uri.host, uri.port)
52
- if (url.match(/^https/))
53
- http.use_ssl = true
54
- end
55
- rescue
56
- throw "Error in url"
57
- end
58
-
59
-
60
- # Create request
61
- begin
62
- method = method || "post"
63
- case method.downcase
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)
74
- end
75
-
76
- # Set form data
77
- request.set_form_data(data)
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
-
94
- rescue
95
- throw "Error in creating request"
96
- end
97
-
98
-
99
- # Add cert if any
100
- begin
101
- if (cert_path.nil?)
102
- http.verify_mode = OpenSSL::SSL::VERIFY_NONE
103
- else
104
- http.use_ssl = true
105
- pem = File.read(cert_path)
106
- http.cert = OpenSSL::X509::Certificate.new(pem)
107
- http.key = OpenSSL::PKey::RSA.new(pem)
108
- http.verify_mode = OpenSSL::SSL::VERIFY_PEER
109
- end
110
- rescue
111
- throw "Error in creating certificate"
112
- end
113
-
114
-
115
- # Send request and return response
116
- response = http.request(request)
117
-
118
- end
119
- end